DB4O масштабируемость - PullRequest
       22

DB4O масштабируемость

2 голосов
/ 03 марта 2011

Я ищу информацию о базе данных объекта DB4O. Я знаю, что он имеет режим клиент / сервер, но я понятия не имею, насколько он масштабируемый. Я большой поклонник идеи объектной базы данных, но все еще не могу найти подходящую OODB для использования в любом из моих проектов. Итак, мои вопросы:

  • Меня интересует, развернул ли кто-нибудь DB4O в многопользовательской среде и как он работает по сравнению с RDBMS?
  • Работает ли какое-либо веб-приложение на сегодняшний день от DB4O?
  • Могу ли я использовать DB4O вместо SQL Server (по крайней мере, SQL Express)?
  • Сколько одновременно работающих клиентов может поддерживать DB4O на практике?
  • Производительность снижается при увеличении размера БД?

Спасибо

P.S. Я заинтересован в выпуске C #.

Ответы [ 2 ]

4 голосов
/ 03 марта 2011

Я в целом согласен с Вагаусом и другими комментариями. db4o может заменить в некоторых случаях, но это действительно зависит от вашего сценария. База данных объектов - это всего лишь один инструмент, который не соответствует всем потребностям. Вы, вероятно, должны попробовать это.

Я просто хочу добавить несколько комментариев:

  • многопользовательская среда: db4o фокусируется на встроенном режиме. Режим клиент / сервер - это скорее дополнение, а не режим по умолчанию. db4o ожидает, что клиент и сервер тесно связаны между собой: клиенту и серверу нужны одни и те же классы, в противном случае произойдет авария. Также сервер db4o не поддерживает такие вещи, как несколько баз данных, управление пользователями и т. Д.
  • Замена для SQL Server (по крайней мере, SQL Express): Конечно, не для большого SQL Server. Там нужна более мощная объектная база данных, чем db4o. db4o - больше эквивалент для экспресс-издания.
  • Снижается ли производительность при увеличении размера БД: Да, как и все базы данных. db4o создан для небольших баз данных. Около 2-16 ГБ - хороший размер для db4o.
  • Параллельное управление: db4o имеет очень ограниченные средства управления параллелизмом для режима клиент-сервер. Он поддерживает только относительно слабый режим изоляции Read Committed.

Как уже говорилось, db4o предназначен для встроенных сценариев. Для больших баз данных клиент-сервер вам, вероятно, нужно взглянуть на другие (объектные) базы данных.

3 голосов
/ 03 марта 2011

Краткий ответ: да, db4o можно использовать вместо RDBM

Длинный ответ: зависит.

Я действительно не верю в то, что «один размер подходит всем», поэтому я думаю, это зависит от вашей объектной модели, схемы доступа, конфигурации машины, настройки БД, ожидаемой скорости роста, количества индексов и т. Д.

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

Сказав это, если вы хотите увидеть результаты тестов, вы можете взглянуть на результаты polepos . Однако обратите внимание, что эти результаты основаны на старой версии db4o (6.4 вместо текущей версии 7.12) - мы ожидаем опубликовать новые результаты в ближайшем будущем.

Я уверен, что есть веб-проекты, использующие db4o (например, jease ), но я точно не знаю, как именно.

Даже если производительность db4o не соответствует вашим требованиям, я бы порекомендовал вам не отказываться от OODB (как правило, это делает вашу жизнь - разработку мудрее - намного проще). В этом случае проверьте другие параметры (например, VOD - от того же поставщика).

...