Быстрая, малая -память, база данных значений постоянного ключа -, поддерживающая одновременное и произвольное чтение

Мне нужно хранилище значений ключа -на диске -, не слишком большое и не распределенное. Вариант использования следующий:

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

Итак, cdbи gdbmвыглядят как хорошие варианты, но я просто хотел узнать, есть ли более подходящие варианты. Указания на соответствующие ориентиры или даже соответствующие неподтвержденные данные будут оценены.

5
задан san 22 June 2012 в 03:21
поделиться