Я пытаюсь реализовать дисковые таблицы sh в python. У меня есть простая в памяти таблица ha sh, подобная этой: -
import time
hash_table=[[] for _ in range(1024)]
def insert(key, value):
hash_key=hash(str(key)) % len(hash_table)
key_exists=False
bucket=hash_table[hash_key]
for i, kv in enumerate(bucket):
k,v=kv
if key==k:
key_exists=True
break
if key_exists==True:
bucket[i]=((key,value))
else:
bucket.append((key,value))
def search(key):
hash_key=hash(str(key))%len(hash_table)
bucket=hash_table[hash_key]
for i, kv in enumerate(bucket):
k,v=kv
if key==k:
return v
for i in range(1000):
insert(i, i*2)
print("ok")
start=time.time()
print(search(49))
print(time.time()-start)
Я подумал об использовании функции mmap () и создании основанных на диске хеш-таблиц для использования в качестве хранилища значений ключей. , Но не могу понять, как реализовать это на диске.