2011-03-02 126 views
2

我正在查找有关DB4O对象数据库的信息。我知道它有客户端/服务器模式,但我不知道它的可扩展性如何。我很喜欢对象数据库的想法,但仍然无法找到适合我的任何项目使用的OODB。所以我的问题是:DB4O可扩展性

  • 我很感兴趣,如果有人在多客户端环境中部署DB4O,它与RDBMS相比如何执行?
  • 到目前为止,任何Web应用程序都支持DB4O吗?
  • 我可以使用DB4O作为SQL Server的替代品吗(至少SQL Express)?
  • 实际上有多少并发客户端可以支持DB4O?
  • 数据库大小增加时性能是否会下降?

感谢

附:我对C#版感兴趣。

+0

下载试用和基准呢? – 2011-03-02 23:40:59

+4

无论OODB革命发生了什么?我们承诺喷气式飞机。 – 2011-03-03 01:19:22

+0

@Mitch小麦你甚至不需要获得*试用版。它是开源的! – Vagaus 2011-03-03 05:19:32

回答

4

我一般同意Vagaus和其他意见。在某些情况下,db4o可以取代,但它确实取决于您的场景。对象数据库只是一种工具,并不适合所有需求。你可能应该尝试一下。

我只想补充几点意见:

  • 多客户端环境:db4o的重点是在嵌入模式。客户机/服务器模式更像是一个插件,并不是真正的默认模式。 db4o期望客户端和服务器'强烈'耦合:客户端和服务器需要相同的类别,否则会发生灾难性的攻击。此外,db4o服务器不支持像多个数据库,用户管理等东西。
  • 替换SQL Server(至少SQL Express):当然不适用于大型SQL Server。需要比db4o更强大的对象数据库。 db4o更适合快递版本。
  • 是否性能下降时,DB尺寸增大:是的它,像所有的数据库。 db4o是为小型数据库而构建的。大约2-16 GB是db4o的一个很好的大小。
  • 并发控制:db4o的具有用于客户端 - 服务器模式非常有限的并发控制。它只支持相对较弱的“读取已提交”隔离模式。

正如所说的,db4o是专为嵌入式方案。对于更大的客户端服务器数据库,您可能需要查看其他(对象)数据库。

+0

使用是否在开发过程中DB40,然后切换到说与NHibernate的SQL Server任何意义。如果您的目标是确保在开发过程中您有一个项目可以轻松地在机器之间浮动?即使是看起来的SQLExpress给我头疼试图从工作转移到家里的笔记本电脑的道路上等等... – Webjedi 2011-03-11 16:52:30

+0

嗯,这是有点危险的游戏:你可以找到抽象切换存储(使用LINQ-IQuerable +简单的界面)。但是,您建立在不同的假设和隐含行为上。例如,性能特征是不同的。稍后当你切换时,你可能已经找到并修复了一些东西。但是,当然,db4o对于原型开发和开始很有帮助。 – Gamlor 2011-03-11 22:19:05

3

简短的回答:是的,db4o可以用作RDBMS

朗答案替换:这要看情况。

我真的不相信“一刀切”,所以我恕我直言,这取决于你的对象模型,访问模式,机器配置,DB tunning,预期增长率,指数#等

我能想到的最好建议已经在评论中说过了:不要将任何答案视为明确/可靠(甚至是我的;-));用尽可能接近实际应用的对象模型/访问模式进行自己的性能测量,并作出结论。

之后说,如果你想看到一些基准测试结果,你可以看看polepos结果。但请注意,这些结果基于旧版本的db4o(6.4而不是当前版本7.12) - 我们预计在不久的将来会发布新的结果。

我确定有使用db4o的web项目(例如jease),但我不确定如何。

即使db4o性能不符合您的要求,我建议您不要放弃OODB(通常它会让您的生活 - 开发更智能 - 更容易)。在这种情况下,请检查其他选项(例如VOD - 来自同一供应商)。