Florian Weimer wrote:
* Ulrich Windl:
When reading, you just say that MDB has some features BDB does not
have. Does that make BDB obsolete technology? I think it depends on
the user's demands.
Berkeley DB supports arbitrary key sizes. For some use cases, this is
quite handy, but it's apparently not relevant to OpenLDAP.
True, not relevant. BDB supports keys of up to 2^32 bytes, as well as values
up to 2^32 bytes. It costs quite a great deal of complexity to support such
large keys, and there are very few cases that will ever use keys of such size.
For any DB library to perform well, keys must be small enough to fit entirely
in RAM and be compared quickly. Keys only need to be large enough to uniquely
distinguish one value from another. For any data set that can be calculated by
today's technology, this means keys need no more than 64 unique bits. Very
large keys implies a bad data model design.
Multiple concurrent writers are nice on paper, but probably are not
worth the complexity for an in-process database.
On the other hand, there's not much complexity to support this, and it saves
the hassle of users complaining that their DBs corrupted when they
accidentally opened the same DB from multiple programs at once.
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/