Использование db4o с несколькими экземплярами приложений со средним доверием - PullRequest
3 голосов
/ 27 марта 2010

Я недавно наткнулся на движок объектной базы данных db4o , который, на мой взгляд, выглядит действительно интересным. Я хотел бы использовать его в приложении ASP.NET MVC, которое будет развернуто в среде общего хостинга под medium trust . Из-за уровня доверия я ограничен использованием db4o во встроенном / внутрипроцессном режиме.

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

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

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

Сводная информация о характеристиках веб-приложения / среды:

  • интенсивное чтение (но не только чтение)
  • Некоторая задержка (несколько секунд) допустима между временем внесения изменения и временем, когда изменение отображается во всех данных экземпляров приложения.
  • Должен работать при среднем доверии
  • Нет гарантии, что балансировщик нагрузки использует "липкие сеансы"

Все предложения очень ценятся!

...