Я рассматриваю возможность хранения 40 миллиардов записей в структуре на основе словаря в Python.
Существует около 30 миллионов ключей первого уровня, в общей сложности 20 миллиардов детей.Один ключ первого уровня может иметь до нескольких миллионов дочерних элементов, поскольку они распределены неравномерно.
Ограничения:
- Нет операций записи после создания базы данных
- Должно быть возможно одно чтение за 10 секунд (задержка должна быть меньше одной минуты)
- База данных должна храниться на быстром диске и не использовать более 4 ГБ памяти
Во времяВ поисках правильного решения я предложил sqlite3 и shelve, но также нашел разные аргументы против этих инструментов.
Как для sqlite3, так и для shelve я должен сохранить полный ключ / первый уровень в памяти, что можетпревышен предел памяти в 4 ГБ.