3

我最近偶然发现了对象数据库引擎db4o,我认为它看起来非常有趣。我想在 ASP.NET MVC 应用程序中使用它,该应用程序将部署到中等信任下的共享托管环境。由于信任级别,我仅限于在嵌入式/进程内模式下使用 db4o。

这本身应该没问题,但托管服务提供商还透明地在多个(负载平衡)服务器实例中运行每个 Web 应用程序,并使用共享存储,我想说这对于每月 10 美元的托管服务商来说通常是一个非常好的功能。但是,由于具有写访问权限的 db4o 服务器实例(无论是进程内还是网络)锁定了底层数据库文件,因此使用同一个文件的多个应用程序实例将不起作用(或者至少我看不到如何它会)。

那么问题来了:在这个特定的环境下是否可以使用db4o?

我考虑过让每个应用程序都有自己的数据库,该数据库使用复制 (dRS) 与主数据库同步,但这种方法很可能会导致非常频繁的双向复制(在每个请求开始时读取主数据库更改,写入每次更改后掌握),我认为这不会非常有效。

Web 应用程序/环境特征总结:

  • 阅读密集型(但并非完全只读)
  • 在进行更改的时间和更改出现在所有应用程序实例的数据中的时间之间,一些延迟(几秒钟)是可以接受的
  • 必须以中等信任度运行
  • 不保证负载均衡器使用“粘性会话”

非常感谢所有建议!

4

0 回答 0