A stores application
data in a Berkeley DB Java Edition database.
It is the traditional "directory server" backend and is similar to
the backends provided by the Sun Java System Directory Server. The
stores the entries in an encoded form and also provides indexes that
can be used to quickly locate target entries based on different
kinds of criteria.
The properties db-txn-no-sync and db-txn-write-no-sync are
mutually exclusive and cannot be both set at the same time.
ds-cfg-je-backend
ds-cfg-pluggable-backend
org.opends.server.backends.jeb.JEBackend
Default this to the db/backend-id
Specifies the path to the filesystem directory that is used
to hold the Berkeley DB Java Edition database files containing the
data for this backend.
The path may be either an absolute path or a path relative to the
directory containing the base of the directory server
installation. The path may be any valid directory path in which
the server has appropriate permissions to read and write files and
has sufficient space to hold the database contents.
db
ds-cfg-db-directory
Specifies the permissions that should be applied to the directory
containing the server database files.
They should be expressed as three-digit octal values, which is the
traditional representation for UNIX file permissions. The three
digits represent the permissions that are available for the
directory's owner, group members, and other users (in that order),
and each digit is the octal representation of the read, write, and
execute bits. Note that this only impacts permissions on the
database directory and not on the files written into that
directory. On UNIX systems, the user's umask controls
permissions given to the database files.
700
^7[0-7][0-7]$
MODE
Any octal value between 700 and 777 (the owner must always
have read, write, and execute permissions on the directory).
ds-cfg-db-directory-permissions
Specifies the percentage of JVM memory to allocate to the database cache.
Specifies the percentage of memory available to the JVM that
should be used for caching database contents. Note that this is
only used if the value of the db-cache-size property is set to
"0 MB". Otherwise, the value of that property is used instead
to control the cache size configuration.
50
ds-cfg-db-cache-percent
The amount of JVM memory to allocate to the database cache.
Specifies the amount of memory that should be used for caching
database contents. A value of "0 MB" indicates that the
db-cache-percent property should be used instead to specify the
cache size.
0 MB
ds-cfg-db-cache-size
Specifies the occupancy percentage for "live" data in this backend's
database.
When the amount of "live" data in the database drops below this value,
cleaners will act to increase the occupancy percentage by compacting
the database.
50
ds-cfg-db-cleaner-min-utilization
Indicates whether the cleaner threads should be enabled to compact
the database.
The cleaner threads are used to periodically compact the
database when it reaches a percentage of occupancy lower than the
amount specified by the db-cleaner-min-utilization property. They identify
database files with a low percentage of live data, and relocate their
remaining live data to the end of the log.
true
ds-cfg-db-run-cleaner
Indicates whether the database should evict existing data from the
cache based on an LRU policy (where the least recently used
information will be evicted first).
If set to "false", then the eviction keeps internal nodes of the underlying
Btree in the cache over leaf nodes, even if the leaf nodes have
been accessed more recently. This may be a better configuration
for databases in which only a very small portion of the data is
cached.
false
ds-cfg-db-evictor-lru-only
Specifies the number of Btree nodes that should be evicted from
the cache in a single pass if it is determined that it is
necessary to free existing data in order to make room for new
information.
Changes to this property do not take effect until the backend is
restarted. It is recommended that you also change this property
when you set db-evictor-lru-only to false. This setting controls
the number of Btree nodes that are considered, or sampled, each
time a node is evicted. A setting of 10 often produces good
results, but this may vary from application to application. The
larger the nodes per scan, the more accurate the algorithm.
However, don't set it too high. When considering larger numbers of
nodes for each eviction, the evictor may delay the completion of a
given database operation, which impacts the response time of the
application thread. In JE 4.1 and later, setting this value too high
in an application that is largely CPU bound can reduce the
effectiveness of cache eviction. It's best to start with the default
value, and increase it gradually to see if it is beneficial for your
application.
10
ds-cfg-db-evictor-nodes-per-scan
Specifies the core number of threads in the eviction thread pool.
Specifies the core number of threads in the eviction thread pool.
These threads help keep memory usage within cache bounds,
offloading work from application threads. db-evictor-core-threads,
db-evictor-max-threads and db-evictor-keep-alive are used to configure
the core, max and keepalive attributes for the eviction thread pool.
1
ds-cfg-db-evictor-core-threads
Specifies the maximum number of threads in the eviction thread pool.
Specifies the maximum number of threads in the eviction thread pool.
These threads help keep memory usage within cache bounds,
offloading work from application threads. db-evictor-core-threads,
db-evictor-max-threads and db-evictor-keep-alive are used to configure
the core, max and keepalive attributes for the eviction thread pool.
10
ds-cfg-db-evictor-max-threads
The duration that excess threads in the eviction thread pool will
stay idle. After this period, idle threads will terminate.
The duration that excess threads in the eviction thread pool will
stay idle. After this period, idle threads will terminate.
db-evictor-core-threads, db-evictor-max-threads and
db-evictor-keep-alive are used to configure the core, max and
keepalive attributes for the eviction thread pool.
600s
ds-cfg-db-evictor-keep-alive
Specifies the maximum size for a database log file.
100mb
ds-cfg-db-log-file-max
Specifies the size of the file handle cache.
The file handle cache is used to keep as much opened log files
as possible. When the cache is smaller than the number of logs,
the database needs to close some handles and open log files it needs,
resulting in less optimal performances. Ideally, the size of the cache
should be higher than the number of files contained in the database.
Make sure the OS number of open files per process is also tuned
appropriately.
100
ds-cfg-db-log-filecache-size
Indicates whether the database should maintain a je.info file in
the same directory as the database log directory.
This file contains information about the internal processing
performed by the underlying database.
true
ds-cfg-db-logging-file-handler-on
Use an enumeration
Specifies the log level that should be used by the database
when it is writing information into the je.info file.
The database trace logging level is (in increasing order of
verbosity) chosen from: OFF, SEVERE, WARNING, INFO, CONFIG, FINE,
FINER, FINEST, ALL.
CONFIG
ds-cfg-db-logging-level
Specifies the maximum number of bytes that may be written to the
database before it is forced to perform a checkpoint.
This can be used to bound the recovery time that may be required
if the database environment is opened without having been properly
closed. If this property is set to a non-zero value, the
checkpointer wakeup interval is not used. To use time-based
checkpointing, set this property to zero.
500mb
ds-cfg-db-checkpointer-bytes-interval
Specifies the maximum length of time that may pass between
checkpoints.
Note that this is only used if the value of the checkpointer
bytes interval is zero.
30s
ds-cfg-db-checkpointer-wakeup-interval
Specifies the number of lock tables that are used by the underlying database.
This can be particularly important to help improve scalability by
avoiding contention on systems with large numbers of CPUs. The
value of this configuration property should be set to a prime
number that is less than or equal to the number of worker threads
configured for use in the server.
Let the server decide.
ds-cfg-db-num-lock-tables
Specifies the number of threads that the backend should maintain
to keep the database log files at or near the desired utilization.
In environments with high write throughput, multiple cleaner
threads may be required to maintain the desired utilization.
Let the server decide.
ds-cfg-db-num-cleaner-threads
Indicates whether database writes should be primarily written to
an internal buffer but not immediately written to disk.
Setting the value of this configuration attribute to "true" may
improve write performance but could cause the most
recent changes to be lost if the directory server or the
underlying JVM exits abnormally, or if an OS or hardware failure
occurs (a behavior similar to running with transaction durability
disabled in the Sun Java System Directory Server).
false
ds-cfg-db-txn-no-sync
Indicates whether the database should synchronously flush data as
it is written to disk.
If this value is set to "false", then all data written to disk
is synchronously flushed to persistent storage and thereby
providing full durability. If it is set to "true", then data may
be cached for a period of time by the underlying operating system
before actually being written to disk. This may improve
performance, but could cause the most recent
changes to be lost in the event of an underlying OS or hardware
failure (but not in the case that the directory server or
the JVM exits abnormally).
true
ds-cfg-db-txn-write-no-sync
Low disk threshold to limit database updates
Specifies the "low" free space on the disk. When the available
free space on the disk used by this database instance falls below the
value specified, protocol updates on this database are permitted only
by a user with the BYPASS_LOCKDOWN privilege.
200 megabytes
ds-cfg-disk-low-threshold
Full disk threshold to limit database updates
When the available free space on the disk used by this database
instance falls below the value specified, no updates
are permitted and the server returns an UNWILLING_TO_PERFORM error.
Updates are allowed again as soon as free space rises above the
threshold.
100 megabytes
ds-cfg-disk-full-threshold
Specifies the database and environment properties for the Berkeley
DB Java Edition database serving the data for this backend.
Any Berkeley DB Java Edition property can be specified using the
following form: property-name=property-value. Refer to
documentation for further information on related properties, their
implications, and range values. The definitive identification of
all the property parameters is available in the example.properties
file of Berkeley DB Java Edition distribution.
ds-cfg-je-property