3 ms·
Berkeley DB has many features and many modes. This, IMHO is part of the reason it has a steep learning curve (and why others have had a bad experience with it).
by btbuilder 15y ago
Berkeley DB has many features and many modes. This, IMHO is part of the reason it has a steep learning curve (and why others have had a bad experience with it).
It is easy to programmatically configure it incorrectly. E.g. not use transactions when you should, fail to deal with deadlocks or not clean up locks of failed threads or processes.
Some of the mature features it has are:
Page-level locking for concurrency via threading and multi-process.
Snapshot isolation for MVCC - you can get a high isolation level without read locks.
Nested transactions.
B-tree indexes.
Two-phase commit.
You can also throw all this out the window and use an in-memory database or non-durable
The newer versions even have replication.
BDB is a hard beast to tame properly, but is definitely fully featured, and mature.
The Oracle paper on the BDB backed SQLite makes an interesting read.