我已经阅读了这里(在字符串键“core operates in single-thread mode”上搜索),发现db4o核心是天然单线程的,那么当多个用户同时尝试访问数据库时,它如何维护性能/吞吐量?
是的,db4o本质上是单线程的。它使用一个大锁来保护其所有操作。在代码中很容易看到这一点。那么它如何维护吞吐量呢?实际上它并不会!db4o从未为处理大量并发操作(如Web应用程序)等应用程序而构建。它确实是为嵌入式桌面/移动应用程序而设计的。它无法处理服务器负载。要处理高吞吐量,您需要考虑更大的数据库。除了单线程之外,db4o还没有提供任何良好的并发控制以检测不同事务之间的冲突更改。