Мне нужно хранилище значений ключа -на диске -, не слишком большое и не распределенное. Вариант использования следующий:
- Размер полной БД будет несколько Гб
- И ключ, и значение имеют постоянный размер
- Это постоянная база данных. После того, как вся база данных будет записана, мне больше не нужно писать записи (или писать очень редко )
- . Доступ к ключам будет осуществляться в непредсказуемом порядке
- Поддержка одновременного чтения несколькими процессами обязательна .
- Должны быть очень быстрыми, потому что читатели будут обращаться к миллионам ключей в тесном цикле . Таким образом, он должен быть максимально близок к производительности цикла по ассоциативному массиву (
STL's std::map
. сказать)
- В идеале он должен позволять устанавливать объем используемой оперативной памяти, обычно он должен использовать несколько сотен мегабайт
- . Написан на C или C++. Существующее расширение Python будет большим плюсом,но я могу добавить это от себя
Итак, cdb
и gdbm
выглядят как хорошие варианты, но я просто хотел узнать, есть ли более подходящие варианты. Указания на соответствующие ориентиры или даже соответствующие неподтвержденные данные будут оценены.
задан san 22 June 2012 в 03:21
поделиться