Альтернатива BerkeleyDB?

Я ищу подобную dbm библиотеку, что я могу использовать вместо Беркли DB, который я в настоящее время использую. Моей главной причиной для переключения являются лицензионные сборы для BDB, довольно высоки (свободный для приложений с открытым исходным кодом, но мой работодатель не хочет к открытому исходному коду это конкретное приложение по различным причинам).

Я кратко посмотрел на qdbm, но не похоже, что это удовлетворит мои потребности - много ключей (несколько миллионов) и большие элементы данных (> 1-5 мегабайтов). Прежде чем я продолжу свой поиск, я полагал, что спрошу, потому что кажется, что существуют тонны подобных dbm библиотек там.

38
задан Jon Seigel 7 April 2010 в 21:51
поделиться

7 ответов

Вы могли посмотреть Корпус Токио . Это - преемник qdbm/gdbm, и если Вы решаете масштабироваться, имеет хороший сетевой фронтенд в наличии.

Редактирование:

Другой вариант Корпус Киото ; разработанный тем же человеком, но предположительно легче использовать.

18
ответ дан Emre Yazici 27 November 2019 в 03:35
поделиться

SQLite является общественным достоянием, означая, что Вы можете использовать его для любой цели вообще, и широко используетесь и поддерживаетесь.

11
ответ дан Greg Hewgill 27 November 2019 в 03:35
поделиться

Можно вытащить очень улучшенную производительность из любого dbm (даже qdbm) и улучшенный параллелизм с простым уровнем абстракции: Просто возьмите свои ключи и хешируйте их и используйте data_dir/H(key)/ в качестве базы данных для хранения тех ключей. Ограничьте вывод хеша маленьким значением (говорят) 255 для лучших результатов.

Этот подход обладает многими преимуществами, легко полученными в итоге:

  • Концептуально простой
  • Легкий реализовать и протестировать
  • не блокирует всю базу данных для обновлений
  • , Может поддерживать намного большие базы данных
  • Легкий заменить компонент DBM

, хеш, вероятно, не должен даже быть криптографически безопасным; просто главным образом универсальный. DJB's хеш cdb работы хорошо в большинстве случаев.

8
ответ дан geocar 27 November 2019 в 03:35
поделиться

Если Вы находитесь в Windows тогда, можно использовать встроенный esent механизм базы данных. http://blogs.msdn.com/windowssdk/archive/2008/10/23/esent-extensible-storage-engine-api-in-the-windows-sdk.aspx

3
ответ дан hfcs101 27 November 2019 в 03:35
поделиться

Пост-ГРЭС или HSQLDB и возможный даже база данных H2

2
ответ дан FoxyBOA 27 November 2019 в 03:35
поделиться

db4o является довольно дешевым и быстрым, но он может только использоваться с Java или .net

0
ответ дан pdeva 27 November 2019 в 03:35
поделиться

Firebird является Вашим лучшим другом.

0
ответ дан F.D.Castel 27 November 2019 в 03:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: