Я ищу подобную dbm библиотеку, что я могу использовать вместо Беркли DB, который я в настоящее время использую. Моей главной причиной для переключения являются лицензионные сборы для BDB, довольно высоки (свободный для приложений с открытым исходным кодом, но мой работодатель не хочет к открытому исходному коду это конкретное приложение по различным причинам).
Я кратко посмотрел на qdbm, но не похоже, что это удовлетворит мои потребности - много ключей (несколько миллионов) и большие элементы данных (> 1-5 мегабайтов). Прежде чем я продолжу свой поиск, я полагал, что спрошу, потому что кажется, что существуют тонны подобных dbm библиотек там.
Вы могли посмотреть Корпус Токио . Это - преемник qdbm/gdbm, и если Вы решаете масштабироваться, имеет хороший сетевой фронтенд в наличии.
Редактирование:
Другой вариант Корпус Киото ; разработанный тем же человеком, но предположительно легче использовать.
SQLite является общественным достоянием, означая, что Вы можете использовать его для любой цели вообще, и широко используетесь и поддерживаетесь.
Можно вытащить очень улучшенную производительность из любого dbm (даже qdbm) и улучшенный параллелизм с простым уровнем абстракции: Просто возьмите свои ключи и хешируйте их и используйте data_dir/H(key)/
в качестве базы данных для хранения тех ключей. Ограничьте вывод хеша маленьким значением (говорят) 255 для лучших результатов.
Этот подход обладает многими преимуществами, легко полученными в итоге:
, хеш, вероятно, не должен даже быть криптографически безопасным; просто главным образом универсальный. DJB's хеш cdb работы хорошо в большинстве случаев.
Если Вы находитесь в Windows тогда, можно использовать встроенный esent механизм базы данных. http://blogs.msdn.com/windowssdk/archive/2008/10/23/esent-extensible-storage-engine-api-in-the-windows-sdk.aspx
Пост-ГРЭС или HSQLDB и возможный даже база данных H2
db4o является довольно дешевым и быстрым, но он может только использоваться с Java или .net