Выбор между Беркли ядро DB и Беркли DB JE

Я разрабатываю основанное на Java веб-приложение, и мне нужно хранилище значения ключа. Беркли DB кажется установкой достаточно для меня, но там, кажется, ДВА Беркли DBS для выбора из: Ядро DB Беркли, которое реализовано в C и Беркли Выпуск Java DB, который реализован в чистом Java.

Вопрос, как выбрать который использовать? С масштабируемостью веб-приложений и производительностью довольно важно (кто знает, возможно, моя идея станет следующим YouTube), и я не мог найти легко значимые сравнительные тесты между двумя. Я должен все же ознакомить с Java Ядер API, но мне трудно полагать, что это могло быть намного хуже, чем Выпуски Java, который, кажется, довольно хорош.

Если некоторое другое хранилище значения ключа было бы намного лучше, не стесняйтесь рекомендовать это также. Я храню небольшие двоичные блобы, и ключи, вероятно, будут хешами данных или некоторым другим уникальным идентификатором.

11
задан Jon Seigel 7 April 2010 в 23:28
поделиться

3 ответа

Если у вас есть общий интерфейс для них и есть подходящий набор модульных тестов, вы сможете легко переключаться между ними позже. (возможно, когда вам действительно нужно принять решение на основе неопровержимых фактов, которые сейчас недоступны)

2
ответ дан 3 December 2019 в 06:20
поделиться

Я столкнулся с той же проблемой и решил использовать версию Java, в основном из-за ее переносимости (мне нужно что-то, что работало бы даже на мобильных устройствах). Существует также API уровня Direct Persistence Layer (DPL), и тот факт, что вся база данных представляет собой одну банку, делает ее развертывание довольно простым.

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

Это естественно подходит для любого приложения Java - настольного или веб-.

2
ответ дан 3 December 2019 в 06:20
поделиться

Некоторое время назад у меня был тот же вопрос. Проведя несколько тестов, я обнаружил, что режим хеширования в собственной версии намного быстрее и эффективнее с точки зрения хранения, чем все, что java edition может предложить, поэтому я решил использовать нативную реализацию.

Я предлагаю вам провести собственные тесты для ожидаемой емкости хранилища и решить, достаточно ли быстрая версия Java.

если это так, или если производительность не является для вас большой проблемой (это критично для меня), просто используйте версию Java. в противном случае используйте собственный (при условии, что вы видите такое же повышение производительности для вашего собственного варианта использования).

кстати: мой тест тестировал скорость запроса случайных ключей из 20 000 000 записей, где ключ - строка, а значение - int (4 байта). Я видел, что вставки (заполнение теста) выполнялись намного быстрее с собственной версией, а запросы выполнялись вдвое быстрее.

(Это происходит не из-за недостатков Java, а из-за того, что версия Java отличается от собственной версии - 4.0 против 4.8 IIRC).

2
ответ дан 3 December 2019 в 06:20
поделиться
Другие вопросы по тегам:

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