проверка на наличие элемента в множестве), не помещающихся в RAM? Самый близкий пример: py-lmdb, только это не множество, а key-value DB. Можно, конечно, использовать только ключи, но, кажется, что должно быть что-то получше.
есть пример элементов множества? Интересует однообразие/разнообразие
Элементы множества: sha1(SOME_BYTE_STRING).hexdigest() И таких элементов — ~30 млн.
Можно сделать множество из множеств
Окей, дикт множеств)
по прежнему нет
Я бы взял 16 машин, назвал их 0, 1, ..., 9, A, ... F и в RAM каждой из них хранил подмножества int по первому символу hexdigest Например, hashlib.sha1(b"SOME_BYTE_STRING").hexdigest() == '4458d53299156f9376b4d2c7322e6f19e8540c25' первый символ 4, хранить его на ноде 4, но хранить в set не hexdigest() а digest()
Спасибо за идею, но моя программа рассчитана на работу на одной машине, причём несильно мощной. Интересует вариант гибрида хранения в RAM/диск. Я готов пожертвовать скоростью.
ну тогда реализуй этот гибрид сам. Не сложно же: '4458d53299156f9376b4d2c7322e6f19e8540c25' будем хранить по пути /44/58/d5/32/99/15/6f/93/76/b4/d2/set, где файл set это бинарный блоб равных кусков, один из которых c7322e6f19e8540c25 — то есть в файле храним только хвост.
Спасибо, что-то сам не подумал о такой реализации.
Обсуждают сегодня