3

I have read here (search on the string key "core operates in single-thread mode") that db4o core is inherently single threaded, then how does it maintain performance/throughput when multiple users try to access the database concurrently?

Sreedhar Danturthi
  • 7,119
  • 19
  • 68
  • 111

1 Answers1

6

Yes, db4o is inherently single threaded. It uses one big lock to protect all its operations. It's easily visible in the code.

How does is maintain the throughput? Well it simply doesn't! db4o was never build for such applications which do tons of concurrent operations (like webapps). It is really build to be embedded in desktop/mobile applications. It cannot handle a server load. For high throughput you need to take at larger databases.

Besides the single threadedness db4o also doesn't offer any good concurrency control to detect conflicting changes of different transactions.

Gamlor
  • 12,978
  • 7
  • 43
  • 70
  • can you suggest me a good Object oriented database which works well in combination with ASP.NET Web applications. Has any one done performance benchmarking with db4o vis-a-vis SQL Server? – Sreedhar Danturthi Jun 15 '11 at 12:33
  • I personally can recommend RavenDB. However it's not a object oriented database, but a damn good document database which works wonderfully for webapps. – Gamlor Jun 15 '11 at 12:44