db4o 如何保持性能
Posted
技术标签:
【中文标题】db4o 如何保持性能【英文标题】:How does db4o maintain the performance 【发布时间】:2011-09-15 11:24:58 【问题描述】:我读过here(搜索字符串键“核心以单线程模式运行”),db4o 核心本质上是单线程的,那么当多个用户尝试同时访问数据库时它如何保持性能/吞吐量?
【问题讨论】:
你能添加这种单线程的证据吗? @Kees 这里是来自 ETH Zurich globis.ethz.ch/education/oodb/slides/03-db4o-part-1.pdf 的链接,并在字符串键上搜索“核心以单线程模式运行” 【参考方案1】:是的,db4o 本质上是单线程的。它使用一把大锁来保护它的所有操作。它在代码中很容易看到。
如何保持吞吐量?好吧,它根本没有! db4o 从未为执行大量并发操作的应用程序(如 webapps)而构建。它真的是为嵌入桌面/移动应用程序而构建的。它无法处理服务器负载。要获得高吞吐量,您需要使用更大的数据库。
除了单线程之外,db4o 也没有提供任何好的并发控制来检测不同事务的冲突变化。
【讨论】:
你能给我推荐一个很好的面向对象的数据库,它可以很好地与 ASP.NET Web 应用程序结合使用。有人用 db4o 对 SQL Server 进行过性能基准测试吗? 我个人可以推荐RavenDB。然而,它不是一个面向对象的数据库,而是一个非常适合 webapps 的非常好的文档数据库。以上是关于db4o 如何保持性能的主要内容,如果未能解决你的问题,请参考以下文章