Создание диска на основе хеш-таблицы? - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь реализовать дисковые таблицы 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 () и создании основанных на диске хеш-таблиц для использования в качестве хранилища значений ключей. , Но не могу понять, как реализовать это на диске.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...