Maucci, Cyrille wrote:
IMDB ?
Quite standard to mean in-memory DB
That would be a misnomer in this case. OpenLDAP MDB is not an in-memory DB. In-memory DBs *only* use RAM in their normal operation, and an auxiliary procedure is used to make backups, replicas, or whatever other mechanism is used to write a copy of the data onto persistent storage. In-memory DBs generally use memory-oriented data structures (like AVL trees, red-black trees, or T-trees) to store their data, and do no I/O in normal operation.
OpenLDAP MDB uses Single-Level Store. The data may reside in RAM or on disk, and the application and DB library don't know and don't care, the OS pages data in or out as needed. The data structure is a disk-oriented structure, a B+tree. I/O calls are used routinely in write operations; the database is always fully persistent without need of any auxiliary persistence mechanisms.
The difference in semantics is quite significant; the SLS approach is far superior to a pure in-memory DB when transactional persistence is required.
A pure in-memory DB (with no persistence layer) would tend to have a much higher write throughput than our MDB, since our persistence is integral and cannot be switched off.
In-memory DBs with persistence require fully loading the data from secondary storage into RAM before they can be operated on, which entails a very significant startup delay. MDB has no such requirement, and the startup delay is near zero.
++Cyrille
-----Original Message----- From: openldap-devel-bounces@OpenLDAP.org [mailto:openldap-devel-bounces@OpenLDAP.org] On Behalf Of Howard Chu Sent: Sunday, November 13, 2011 11:18 AM To: OpenLDAP-devel@openldap.org Subject: MDB name
What's in a name... Apparently "MDB" is already a well-known suffix for Microsoft Access database files. "mdb" is also the name of a debugger tool in Solaris. To avoid confusion with those unrelated items, it might be a good idea to rename our MDB to something else. Now, before the next OpenLDAP release is published. Comments?