Встроенная Java-база данных с открытым исходным кодом nosql - PullRequest
4 голосов
/ 07 марта 2011

Я разрабатываю продукт с открытым исходным кодом и мне нужна встроенная база данных. Можете ли вы порекомендовать встроенную базу данных с открытым исходным кодом, которая ...

  • Может обрабатывать объекты размером более 10 ГБ каждый
  • Имеет лицензию для встраивания (LGPL, а не GPL).
  • Чиста Ява
  • Является (предпочтительно) носкл. Sql может работать, но предпочитает nosql

Я просмотрел некоторые СУБД документов, например, mongodb, но, похоже, они ограничены документами размером 4 или 16 МБ.

Berkeley DB выглядел привлекательно, но имеет лицензию, аналогичную GPL.

Sqlite3 привлекателен: хорошая лицензия, и вы можете скомпилировать с любым максимальным размером капли, который вам нравится. Но это не Java. Я знаю, что драйверы JDBC существуют, но нам нужна чистая система Java.

Есть предложения?

Спасибо

Steve

1 Ответ

6 голосов
/ 31 марта 2012

Хотя это старый вопрос, я недавно изучал этот вопрос и обнаружил следующее (по крайней мере два из которых были написаны после того, как был задан этот вопрос).Я не уверен, как любой из них обрабатывает очень большие объекты - и при 10 ГБ вам, вероятно, придется провести серьезное тестирование, поскольку я предполагаю, что немногие разработчики баз данных будут иметь в виду объекты такого размера для своих продуктов (только предположение).Я бы определенно подумал о том, чтобы хранить их на диске напрямую, просто ссылаясь на расположение файла в вашей базе данных.

(кстати, все приведенные ниже мнения довольно поверхностны, поскольку я их еще не использовал всерьез).


OrientDB выглядит как самая зрелая из трех, которые я нашел.Он выглядит как база данных документов и / или графиков и утверждает, что он очень быстрый (используя структуру данных «RB + Tree» - комбинацию деревьев B + и Red Black).Он претендует на то, чтобы быть очень быстрым и легким, без каких-либо внешних зависимостей.Кажется, существует активное сообщество, разрабатывающее его, например, с большим количеством коммитов за последние несколько дней.Он также совместим со стандартом TinkerPop для графической базы данных, который добавляет еще один уровень функций (например, язык запросов графов Gremlin).Он ACID совместим, имеет REST и другие внешние API и даже веб-приложение для управления (которое предположительно может быть развернуто с вашей встроенной БД, но я не уверен).

Следующийеще два попадают в простой лагерь хранения значений ключей N (ot) O (nly) мира SQL.

JDBM3 - чрезвычайно минимальное хранилище данных: у него есть карта хешей, деревокарта, набор деревьев и связанный список, которые записываются на диск через файлы, отображенные в памяти.Он утверждает, что он очень легкий и быстрый, полностью транзакционный и активно развивается.

HawtDB выглядит очень просто и быстро - индекс на основе BTree или Hash сохраняется на диске с отображенной памятьюфайлы.Это (необязательно) полностью транзакционный.За последние семь месяцев (до конца марта 2012 года) никаких коммитов не было, и в списке рассылки не так много активности.Это не значит, что это не хорошая библиотека, но стоит упомянуть.

JDBM3 и HawtDB довольно минимальны, так что вы не собираетесь получать какие-либо изящные графические интерфейсы.Но я думаю, что они оба выглядят очень привлекательно благодаря своей скорости и простоте.


Это все, что я нашел в соответствии с вашими требованиями.Кроме того, Neo4J великолепен - графическая база данных, которая сейчас довольно зрелая и очень хорошо работает во встроенном режиме.Это лицензия GPL / AGPL, поэтому может потребоваться платная лицензия, если только вы не можете открыть исходный код тоже: http://neotechnology.com/products/price-list/

Конечно, вы также можете использовать базу данных H2 SQL с одним большим столом и без индексов!

...