-.TH SLAPD-BDB 5 "28 April 2002" "OpenLDAP LDVERSION"
-.\" Copyright 1998-2002 The OpenLDAP Foundation All Rights Reserved.
+.TH SLAPD-BDB 5 "RELEASEDATE" "OpenLDAP LDVERSION"
+.\" Copyright 1998-2004 The OpenLDAP Foundation All Rights Reserved.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
.\" $OpenLDAP$
.SH NAME
The BDB backend to
.BR slapd (8)
is the recommended backend for a normal slapd database.
-It uses the Sleepycat BerkelyDB package to store data.
+However, it takes more care than with the LDBM backend to configure
+it properly.
+It uses the Sleepycat Berkeley DB (BDB) package to store data.
It makes extensive use of indexing and caching to speed data access.
+.LP
+It is noted that these options are intended to complement
+Berkeley DB configuration options set in the environment's
+.B DB_CONFIG
+file. See Berkeley DB documentation for
+details on
+.B DB_CONFIG
+configuration options. Where there is overlap, settings in
+.B DB_CONFIG
+take precedence.
.SH CONFIGURATION
-The
-.BR slapd.conf (5)
-options in this category apply to the BDB databases.
+These
+.B slapd.conf
+options apply to the BDB backend database.
That is, they must follow a "database bdb" line and come before any
subsequent "backend" or "database" lines.
+Other database options are described in the
+.BR slapd.conf (5)
+manual page.
.TP
.B cachesize <integer>
Specify the size in entries of the in-memory cache maintained
The default is 1000 entries.
.TP
.B checkpoint <kbyte> <min>
-Specify the frequency for checkpointing the database transaction log.
-A checkpoint operation flushes the database buffers to disk and writes
-a checkpoint record in the log.
-The checkpoint will occur if either <kbyte> data has been written or
-<min> minutes have passed since the last checkpoint.
-Both arguments default to zero, in which case they are ignored.
-See the Berkeley DB reference guide for more details.
+Specify the frequency for checkpointing the database transaction
+log upon updating of the database. A checkpoint flushes the
+database buffers to disk and writes a checkpoint record in the log.
+Upon a database update, a checkpoint will occur if either <kbyte>
+data has been written or <min> minutes have passed since the last
+checkpoint. Both arguments default to zero, in which case they are
+ignored. Note: checkpointing by this directive occurs only upon execution of
+a database update. If one desires checkpointing to occur otherwise,
+db_checkpoint(1) or some other external process should be used to cause
+a database checkpoint to be taken. See the Berkeley DB reference
+guide for more details.
.TP
.B dbnosync
Specify that on-disk database contents should not be immediately
In this case, the modified data is discarded and a subsequent search
will return a different result.
.TP
+.B idlcachesize <integer>
+Specify the size of the in-memory index cache, in index slots. The
+default is zero. A larger value will speed up frequent searches of
+indexed entries.
+.TP
.B
index {<attrlist>|default} [pres,eq,approx,sub,<special>]
Specify the indexes to maintain for the given attribute (or
If only an <attr> is given, the indices specified for \fBdefault\fR
are maintained.
Note that setting a default does not imply that all attributes will be
-indexed.
+indexed. Also, for best performance, an
+.B eq
+index should always be configured for the
+.B objectClass
+attribute.
A number of special index parameters may be specified.
The index type
Specify the file protection mode that newly created database
index files should have.
The default is 0600.
+.TP
+.B 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
+clauses. An individual stack is assigned to each server thread.
+The depth of the stack determines how complex a filter can be
+evaluated without requiring any additional memory allocation. Filters that
+are nested deeper than the search stack depth will cause a separate
+stack to be allocated for that particular search operation. These
+allocations can have a major negative impact on server performance,
+but specifying too much stack will also consume a great deal of memory.
+Each search stack uses 512K bytes per level. The default stack depth
+is 16, thus 8MB per thread is used.
+.TP
+.B shm_key <integer>
+Specify a key for a shared memory BDB environment. By default the
+BDB environment uses memory mapped files. If a non-zero value is
+specified, it will be used as the key to identify a shared memory
+region that will house the environment.
+.TP
+.B sessionlog <sid> <limit>
+Specify a session log store for the syncrepl replication provider
+server. The session log store contains information on the entries that
+have been scoped out of the provider replication content identified by
+.B <sid>.
+The number of entries in the session log store is limited by
+.B <limit>.
+Excessive entries are removed from the store in the FIFO order.
+Both
+.B <sid>
+and
+.B <limit>
+are non-negative integers.
+.B <sid>
+has no more than three decimal digits.
+Refer to the "OpenLDAP Administrator's Guide" for detailed information
+on setting up a replicated slapd directory service using the syncrepl
+replication engine and the session log store.
+.B
+.SH FILES
+.TP
+ETCDIR/slapd.conf
+default slapd configuration file
+.TP
+DB_CONFIG
+Berkeley DB configuration file
.SH SEE ALSO
.BR slapd.conf (5),
.BR slapd (8),
.BR slapadd (8),
.BR slapcat (8),
-.BR slapindex (8).
+.BR slapindex (8),
+Berkeley DB documentation.