.TH SLAPD-MDB 5 "RELEASEDATE" "OpenLDAP LDVERSION"
-.\" Copyright 2011 The OpenLDAP Foundation All Rights Reserved.
+.\" Copyright 2011-2013 The OpenLDAP Foundation All Rights Reserved.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
.\" $OpenLDAP$
.SH NAME
.SH DESCRIPTION
The \fBmdb\fP backend to
.BR slapd (8)
-uses OpenLDAP's own Memory-Mapped DB (MDB) library to store data.
+uses OpenLDAP's Lightning Memory-Mapped DB (LMDB) library to store data.
It relies completely on the underlying operating system for memory
management and does no caching of its own.
.LP
Specify that on-disk database contents should not be immediately
synchronized with in memory changes.
Enabling this option may improve performance at the expense of data
-security. By default, a full data flush/sync is performed when each
+security. In particular, if the operating system crashes before changes are
+flushed, some number of transactions may be lost.
+By default, a full data flush/sync is performed when each
transaction is committed.
.TP
.BI directory \ <directory>
-Specify the directory where the MDB files containing this database and
+Specify the directory where the LMDB files containing this database and
associated indexes live.
A separate directory must be specified for each database.
The default is
.BR LOCALSTATEDIR/openldap\-data .
+.TP
+\fBenvflags \fR{\fBnosync\fR,\fBnometasync\fR,\fBwritemap\fR,\fBmapasync\fR,\fBnordahead\fR}
+Specify flags for finer-grained control of the LMDB library's operation.
+.RS
+.TP
+.B nosync
+This is exactly the same as the
+.I dbnosync
+directive.
+.RE
+.RS
+.TP
+.B nometasync
+Flush the data on a commit, but skip the sync of the meta page. This mode is
+slightly faster than doing a full sync, but can potentially lose the last
+committed transaction if the operating system crashes. If both
+.I nometasync
+and
+.I nosync
+are set, the
+.I nosync
+flag takes precedence.
+.RE
+.RS
+.TP
+.B writemap
+Use a writable memory map instead of just read-only. This speeds up write operations
+but makes the database vulnerable to corruption in case any bugs in slapd
+cause stray writes into the mmap region.
+.RE
+.RS
+.TP
+.B mapasync
+When using a writable memory map and performing flushes on each commit, use an
+asynchronous flush instead of a synchronous flush (the default). This option
+has no effect if
+.I writemap
+has not been set. It also has no effect if
+.I nosync
+is set.
+.RE
+.RS
+.TP
+.B nordahead
+Turn off file readahead. Usually the OS performs readahead on every read
+request. This usually boosts read performance but can be harmful to
+random access read performance if the system's memory is full and the DB
+is larger than RAM. This option is not implemented on Windows.
+.RE
+
.TP
\fBindex \fR{\fI<attrlist>\fR|\fBdefault\fR} [\fBpres\fR,\fBeq\fR,\fBapprox\fR,\fBsub\fR,\fI<special>\fR]
Specify the indexes to maintain for the given attribute (or
.B mdb
backend honors access control semantics as indicated in
.BR slapd.access (5).
+.SH NOTES
+This is an early release; the database file format or other
+characteristics may change incompatibly in future releases.
.SH FILES
.TP
.B ETCDIR/slapd.conf
.BR slapadd (8),
.BR slapcat (8),
.BR slapindex (8),
-OpenLDAP MDB documentation.
+OpenLDAP LMDB documentation.
.SH ACKNOWLEDGEMENTS
.so ../Project
Written by Howard Chu.