]> git.sur5r.net Git - openldap/blobdiff - doc/man/man5/slapd-mdb.5
Large multivalued attr support
[openldap] / doc / man / man5 / slapd-mdb.5
index aba30cabfddd2667218968114b5d85560933da40..f247a4c231a723adbd407844b0938438c9f43d52 100644 (file)
@@ -1,5 +1,5 @@
 .TH SLAPD-MDB 5 "RELEASEDATE" "OpenLDAP LDVERSION"
-.\" Copyright 2011-2013 The OpenLDAP Foundation All Rights Reserved.
+.\" Copyright 2011-2016 The OpenLDAP Foundation All Rights Reserved.
 .\" Copying restrictions apply.  See COPYRIGHT/LICENSE.
 .\" $OpenLDAP$
 .SH NAME
@@ -11,7 +11,8 @@ The \fBmdb\fP backend to
 .BR slapd (8)
 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.
+management and does no caching of its own. It is the recommended
+primary database backend.
 .LP
 The \fBmdb\fP backend is similar to the \fBhdb\fP backend in that
 it uses a hierarchical database layout which
@@ -54,7 +55,7 @@ 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}
+\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
@@ -94,6 +95,14 @@ 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]
@@ -131,6 +140,11 @@ changing \fBindex\fP settings
 dynamically by LDAPModifying "cn=config" automatically causes rebuilding
 of the indices online in a background task.
 .TP
+.BI maxentrysize \ <bytes>
+Specify the maximum size of an entry in bytes. Attempts to store
+an entry larger than this size will be rejected with the error
+LDAP_ADMINLIMIT_EXCEEDED. The default is 0, which is unlimited.
+.TP
 .BI maxreaders \ <integer>
 Specify the maximum number of threads that may have concurrent read access
 to the database. Tools such as slapcat count as a single thread,
@@ -153,6 +167,34 @@ Specify the file protection mode that newly created database
 files should have.
 The default is 0600.
 .TP
+.BI multival_hi \ <integer>
+Specify the number of values above which a multivalued attribute is
+stored in a separate table. Normally entries are stored as a single
+blob inside the database. When an entry gets very large or contains
+attributes with a very large number of values, modifications on that
+entry may get very slow. Splitting the large attributes out to a separate
+table can improve the performance of modification operations.
+The default is UINT_MAX, which keeps all attributes in the main blob.
+.TP
+.BI multival_lo \ <integer>
+Specify the number of values below which a multivalued attribute
+that was stored in a separate table is moved back into the main
+entry blob. If a modification deletes enough values to bring an
+attribute below this threshold, its values will be removed from the
+separate table and merged back into the main entry blob.
+The default is UINT_MAX, which keeps all attributes in
+the main blob.
+.TP
+.BI rtxnsize \ <entries>
+Specify the maximum number of entries to process in a single read
+transaction when executing a large search. Long-lived read transactions
+prevent old database pages from being reused in write transactions, and
+so can cause significant growth of the database file when there is
+heavy write traffic. This setting causes the read transaction in
+large searches to be released and reacquired after the given number
+of entries has been read, to give writers the opportunity to
+reclaim old database pages. The default is 10000.
+.TP
 .BI searchstack \ <depth>
 Specify the depth of the stack used for search filter evaluation.
 Search filters are evaluated on a stack to accommodate nested AND / OR
@@ -170,9 +212,6 @@ The
 .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