Configuration

OrientDB can be configured in several ways.

Getting settings

From Java

To retrieve the default or current value of a setting you can use the methods getDefValue() and getValue() of the java enumerator OGlobalConfiguration.

Example:

  • get the default value of the setting USE_WAL: OGlobalConfiguration.USE_WAL.getDefValue();
  • get the current value of the setting USE_WAL: OGlobalConfiguration.USE_WAL.getValue());

From the Console

To retrieve the full list of current settings from the Console you can use the CONFIG command:

orientdb> CONFIG

LOCAL SERVER CONFIGURATION
+----+----------------------------------------------+--------------+
|#   |NAME                                          |VALUE         |
+----+----------------------------------------------+--------------+
|0   |environment.dumpCfgAtStartup                  |false         |
|1   |environment.concurrent                        |true          |
|2   |environment.lockManager.concurrency.level     |32            |
|3   |environment.allowJVMShutdown                  |true          |
|4   |script.pool.maxSize                           |20            |
...
|219 |client.channel.minPool                        |1             |
|220 |storage.keepOpen                              |true          |
|221 |cache.local.enabled                           |true          |
+----+----------------------------------------------+--------------+

To retrieve the value of a specific setting, you can use the CONFIG GET command.

Example:

orientdb> CONFIG GET tx.log.fileType

Remote configuration: tx.log.fileType = classic

Changing settings

By command line

You can pass settings via command line when the JVM is launched. This is typically stored inside server.sh (or server.bat on Windows):

java -Dcache.size=10000 -Dstorage.keepOpen=true ...

By server configuration

Put in the <properties> section of the file orientdb-server-config.xml (or orientdb-dserver-config.xml) the entries to configure.

Example:

  ...
  <properties>
    <entry name="cache.size" value="10000" />
    <entry name="storage.keepOpen" value="true" />
  </properties>
  ...

At run-time

Some settings can be changed at run-time.

From Java

To change at run-time a setting from java you can use the setValue() method of the java enumerator OGlobalConfiguration.

Example:

OGlobalConfiguration.MVRBTREE_NODE_PAGE_SIZE.setValue(2048);

From the Console

To change at run-time a setting from the Console you can use the CONFIG SET command.

Example:

orientdb> CONFIG SET tx.autoRetry 5

Dump the configuration

To dump the OrientDB configuration you can set a parameter at JVM launch:

java -Denvironment.dumpCfgAtStartup=true ...

Or via API at any time:

OGlobalConfiguration.dumpConfiguration(System.out);

Parameters

To know more look at the Java enumeration: OGlobalConfiguration.java. NOTE: The documentation below is auto-generated by parsing the OGlobalConfiguration.java class. Please do not edit the parameters here, but rather edit the documentation in the java class.


Environment

environment.dumpCfgAtStartup

Dumps the configuration during application startup.

Setting name...: environment.dumpCfgAtStartup
Default value..: false
Set at run-time: false
environment.concurrent

Specifies if running in multi-thread environment. Setting this to false turns off the internal lock management.

Setting name...: environment.concurrent
Default value..: true
Set at run-time: false
environment.lockManager.concurrency.level

Concurrency level of lock manager.

Setting name...: environment.lockManager.concurrency.level
Default value..: 64
Set at run-time: false
environment.allowJVMShutdown

Allows the shutdown of the JVM, if needed/requested.

Setting name...: environment.allowJVMShutdown
Default value..: true
Set at run-time: true

Script

script.pool.maxSize

Maximum number of instances in the pool of script engines.

Setting name...: script.pool.maxSize
Default value..: 20
Set at run-time: false

Memory

memory.useUnsafe

Indicates whether Unsafe will be used, if it is present.

Setting name...: memory.useUnsafe
Default value..: true
Set at run-time: false
memory.chunk.size

Size of single memory chunk (in bytes) which will be preallocated by OrientDB.

Setting name...: memory.chunk.size
Default value..: 2147483647
Set at run-time: false
memory.directMemory.safeMode

Indicates whether to perform a range check before each direct memory update. It is true by default, but usually it can be safely set to false. It should only be to true after dramatic changes have been made in the storage structures.

Setting name...: memory.directMemory.safeMode
Default value..: true
Set at run-time: false
memory.directMemory.trackMode

Activates the direct memory pool leak detector. This detector causes a large overhead and should be used for debugging purposes only. It's also a good idea to pass the -Djava.util.logging.manager=com.orientechnologies.common.log.OLogManager$DebugLogManager switch to the JVM, if you use this mode, this will enable the logging from JVM shutdown hooks..

Setting name...: memory.directMemory.trackMode
Default value..: false
Set at run-time: false
memory.directMemory.onlyAlignedMemoryAccess

Some architectures do not allow unaligned memory access or may suffer from speed degradation. For such platforms, this flag should be set to true.

Setting name...: memory.directMemory.onlyAlignedMemoryAccess
Default value..: true
Set at run-time: false

Jvm

jvm.gc.delayForOptimize

Minimal amount of time (in seconds), since the last System.gc(), when called after tree optimization.

Setting name...: jvm.gc.delayForOptimize
Default value..: 600
Set at run-time: false

Storage

storage.openFiles.limit

Limit of amount of files which may be open simultaneously.

Setting name...: storage.openFiles.limit
Default value..: 512
Set at run-time: false
storage.componentsLock.cache

Amount of cached locks is used for component lock to avoid constant creation of new lock instances.

Setting name...: storage.componentsLock.cache
Default value..: 10000
Set at run-time: false
storage.diskCache.pinnedPages

Maximum amount of pinned pages which may be contained in cache, if this percent is reached next pages will be left in unpinned state. You can not set value more than 50.

Setting name...: storage.diskCache.pinnedPages
Default value..: 20
Set at run-time: false
storage.diskCache.bufferSize

Size of disk buffer in megabytes, disk size may be changed at runtime, but if does not enough to contain all pinned pages exception will be thrown.

Setting name...: storage.diskCache.bufferSize
Default value..: 4096
Set at run-time: true
storage.diskCache.writeCachePart

Percentage of disk cache, which is used as write cache.

Setting name...: storage.diskCache.writeCachePart
Default value..: 15
Set at run-time: false
storage.diskCache.writeCachePageTTL

Max time until a page will be flushed from write cache (in seconds).

Setting name...: storage.diskCache.writeCachePageTTL
Default value..: 86400
Set at run-time: false
storage.diskCache.writeCachePageFlushInterval

Interval between flushing of pages from write cache (in ms).

Setting name...: storage.diskCache.writeCachePageFlushInterval
Default value..: 25
Set at run-time: false
storage.diskCache.writeCacheFlushInactivityInterval

Interval between 2 writes to the disk cache, if writes are done with an interval more than provided, all files will be fsynced before the next write, which allows a data restore after a server crash (in ms).

Setting name...: storage.diskCache.writeCacheFlushInactivityInterval
Default value..: 60000
Set at run-time: false
storage.diskCache.writeCacheFlushLockTimeout

Maximum amount of time the write cache will wait before a page flushes (in ms, -1 to disable).

Setting name...: storage.diskCache.writeCacheFlushLockTimeout
Default value..: -1
Set at run-time: false
storage.diskCache.diskFreeSpaceCheckInterval

The interval (in seconds), after which the storage periodically checks whether the amount of free disk space is enough to work in write mode.

Setting name...: storage.diskCache.diskFreeSpaceCheckInterval
Default value..: 5
Set at run-time: false
storage.diskCache.diskFreeSpaceCheckIntervalInPages

The interval (how many new pages should be added before free space will be checked), after which the storage periodically checks whether the amount of free disk space is enough to work in write mode.

Setting name...: storage.diskCache.diskFreeSpaceCheckIntervalInPages
Default value..: 2048
Set at run-time: false
storage.diskCache.keepState

Keep disk cache state between moment when storage is closed and moment when it is opened again. true by default.

Setting name...: storage.diskCache.keepState
Default value..: true
Set at run-time: false
storage.configuration.syncOnUpdate

Indicates a force sync should be performed for each update on the storage configuration.

Setting name...: storage.configuration.syncOnUpdate
Default value..: true
Set at run-time: false
storage.compressionMethod

Record compression method used in storage Possible values : gzip, nothing, snappy, snappy-native. Default is 'nothing' that means no compression.

Setting name...: storage.compressionMethod
Default value..: nothing
Set at run-time: false
storage.encryptionMethod

Record encryption method used in storage Possible values : 'aes' and 'des'. Default is 'nothing' for no encryption.

Setting name...: storage.encryptionMethod
Default value..: nothing
Set at run-time: false
storage.encryptionKey

Contains the storage encryption key. This setting is hidden.

Setting name...: storage.encryptionKey
Default value..: null
Set at run-time: false
storage.makeFullCheckpointAfterCreate

Indicates whether a full checkpoint should be performed, if storage was created.

Setting name...: storage.makeFullCheckpointAfterCreate
Default value..: false
Set at run-time: false
storage.makeFullCheckpointAfterOpen

Indicates whether a full checkpoint should be performed, if storage was opened. It is needed so fuzzy checkpoints can work properly.

Setting name...: storage.makeFullCheckpointAfterOpen
Default value..: true
Set at run-time: false
storage.makeFullCheckpointAfterClusterCreate

Indicates whether a full checkpoint should be performed, if storage was opened.

Setting name...: storage.makeFullCheckpointAfterClusterCreate
Default value..: true
Set at run-time: false
storage.trackChangedRecordsInWAL

If this flag is set metadata which contains rids of changed records is added at the end of each atomic operation.

Setting name...: storage.trackChangedRecordsInWAL
Default value..: false
Set at run-time: false
storage.useWAL

Whether WAL should be used in paginated storage.

Setting name...: storage.useWAL
Default value..: true
Set at run-time: false
storage.wal.syncOnPageFlush

Indicates whether a force sync should be performed during WAL page flush.

Setting name...: storage.wal.syncOnPageFlush
Default value..: true
Set at run-time: false
storage.wal.cacheSize

Maximum size of WAL cache (in amount of WAL pages, each page is 64k) If set to 0, caching will be disabled.

Setting name...: storage.wal.cacheSize
Default value..: 3000
Set at run-time: false
storage.wal.fileAutoCloseInterval

Interval in seconds after which WAL file will be closed if there is no any IO operations on this file (in seconds), default value is 10.

Setting name...: storage.wal.fileAutoCloseInterval
Default value..: 10
Set at run-time: false
storage.wal.maxSegmentSize

Maximum size of single WAL segment (in megabytes).

Setting name...: storage.wal.maxSegmentSize
Default value..: 128
Set at run-time: false
storage.wal.maxSize

Maximum size of WAL on disk (in megabytes).

Setting name...: storage.wal.maxSize
Default value..: 4096
Set at run-time: false
storage.wal.commitTimeout

Maximum interval between WAL commits (in ms.).

Setting name...: storage.wal.commitTimeout
Default value..: 1000
Set at run-time: false
storage.wal.shutdownTimeout

Maximum wait interval between events, when the background flush threadreceives a shutdown command and when the background flush will be stopped (in ms.).

Setting name...: storage.wal.shutdownTimeout
Default value..: 10000
Set at run-time: false
storage.wal.fuzzyCheckpointInterval

Interval between fuzzy checkpoints (in seconds).

Setting name...: storage.wal.fuzzyCheckpointInterval
Default value..: 300
Set at run-time: false
storage.wal.reportAfterOperationsDuringRestore

Amount of processed log operations, after which status of data restore procedure will be printed (0 or a negative value, disables the logging).

Setting name...: storage.wal.reportAfterOperationsDuringRestore
Default value..: 10000
Set at run-time: false
storage.wal.restore.batchSize

Amount of WAL records, which are read at once in a single batch during a restore procedure.

Setting name...: storage.wal.restore.batchSize
Default value..: 1000
Set at run-time: false
storage.wal.readCacheSize

Size of WAL read cache in amount of pages.

Setting name...: storage.wal.readCacheSize
Default value..: 1000
Set at run-time: false
storage.wal.fuzzyCheckpointShutdownWait

The amount of time the DB should wait until it shuts down (in seconds).

Setting name...: storage.wal.fuzzyCheckpointShutdownWait
Default value..: 600
Set at run-time: false
storage.wal.fullCheckpointShutdownTimeout

The amount of time the DB will wait, until a checkpoint is finished, during a DB shutdown (in seconds).

Setting name...: storage.wal.fullCheckpointShutdownTimeout
Default value..: 600
Set at run-time: false
storage.wal.path

Path to the WAL file on the disk. By default, it is placed in the DB directory, but it is highly recommended to use a separate disk to store log operations.

Setting name...: storage.wal.path
Default value..: null
Set at run-time: false
storage.diskCache.pageSize

Size of page of disk buffer (in kilobytes). !!! NEVER CHANGE THIS VALUE !!!.

Setting name...: storage.diskCache.pageSize
Default value..: 64
Set at run-time: false
storage.diskCache.diskFreeSpaceLimit

Minimum amount of space on disk, which, when exceeded, will cause the database to switch to read-only mode (in megabytes).

Setting name...: storage.diskCache.diskFreeSpaceLimit
Default value..: 256
Set at run-time: false
storage.lowestFreeListBound

The least amount of free space (in kb) in a page, which is tracked in paginated storage.

Setting name...: storage.lowestFreeListBound
Default value..: 16
Set at run-time: false
storage.lockTimeout

Maximum amount of time (in ms) to lock the storage.

Setting name...: storage.lockTimeout
Default value..: 0
Set at run-time: false
storage.record.lockTimeout

Maximum of time (in ms) to lock a shared record.

Setting name...: storage.record.lockTimeout
Default value..: 2000
Set at run-time: false
storage.useTombstones

When a record is deleted, the space in the cluster will not be freed, but rather tombstoned.

Setting name...: storage.useTombstones
Default value..: false
Set at run-time: false
storage.cluster.usecrc32

Indicates whether crc32 should be used for each record to check record integrity.

Setting name...: storage.cluster.usecrc32
Default value..: false
Set at run-time: false
storage.keepOpen

Deprecated.

Setting name...: storage.keepOpen
Default value..: true
Set at run-time: false

Record

record.downsizing.enabled

On updates, if the record size is lower than before, this reduces the space taken accordingly. If enabled this could increase defragmentation, but it reduces the used disk space.

Setting name...: record.downsizing.enabled
Default value..: true
Set at run-time: false

Object

object.saveOnlyDirty

Object Database only! It saves objects bound to dirty records.

Setting name...: object.saveOnlyDirty
Default value..: false
Set at run-time: true

Db

db.pool.min

Default database pool minimum size.

Setting name...: db.pool.min
Default value..: 1
Set at run-time: false
db.pool.max

Default database pool maximum size.

Setting name...: db.pool.max
Default value..: 100
Set at run-time: false
db.pool.idleTimeout

Timeout for checking for free databases in the pool.

Setting name...: db.pool.idleTimeout
Default value..: 0
Set at run-time: false
db.pool.idleCheckDelay

Delay time on checking for idle databases.

Setting name...: db.pool.idleCheckDelay
Default value..: 0
Set at run-time: false
db.mvcc.throwfast

Use fast-thrown exceptions for MVCC OConcurrentModificationExceptions. No context information will be available. Set to true, when these exceptions are thrown, but the details are not necessary.

Setting name...: db.mvcc.throwfast
Default value..: false
Set at run-time: true
db.validation

Enables or disables validation of records.

Setting name...: db.validation
Default value..: true
Set at run-time: true
db.document.serializer

The default record serializer used by the document database.

Setting name...: db.document.serializer
Default value..: ORecordSerializerBinary
Set at run-time: false
db.makeFullCheckpointOnIndexChange

When index metadata is changed, a full checkpoint is performed.

Setting name...: db.makeFullCheckpointOnIndexChange
Default value..: true
Set at run-time: true
db.makeFullCheckpointOnSchemaChange

When index schema is changed, a full checkpoint is performed.

Setting name...: db.makeFullCheckpointOnSchemaChange
Default value..: true
Set at run-time: true
db.mvcc

Deprecated, MVCC cannot be disabled anymore.

Setting name...: db.mvcc
Default value..: true
Set at run-time: false
db.use.distributedVersion

Deprecated, distributed version is not used anymore.

Setting name...: db.use.distributedVersion
Default value..: false
Set at run-time: false

NonTX

nonTX.recordUpdate.synch

Executes a sync against the file-system for every record operation. This slows down record updates, but guarantees reliability on unreliable drives.

Setting name...: nonTX.recordUpdate.synch
Default value..: false
Set at run-time: false
nonTX.clusters.sync.immediately

List of clusters to sync immediately after update (separated by commas). Can be useful for a manual index.

Setting name...: nonTX.clusters.sync.immediately
Default value..: manindex
Set at run-time: false

Tx

tx.trackAtomicOperations

This setting is used only for debug purposes. It creates a stack trace of methods, when an atomic operation is started.

Setting name...: tx.trackAtomicOperations
Default value..: false
Set at run-time: false
tx.commit.synch

Synchronizes the storage after transaction commit.

Setting name...: tx.commit.synch
Default value..: false
Set at run-time: false
tx.autoRetry

Maximum number of automatic retry if some resource has been locked in the middle of the transaction (Timeout exception).

Setting name...: tx.autoRetry
Default value..: 1
Set at run-time: false
tx.log.fileType

File type to handle transaction logs: mmap or classic.

Setting name...: tx.log.fileType
Default value..: classic
Set at run-time: false
tx.log.synch

Executes a synch against the file-system at every log entry. This slows down transactions but guarantee transaction reliability on unreliable drives.

Setting name...: tx.log.synch
Default value..: false
Set at run-time: false
tx.useLog

Transactions use log file to store temporary data to be rolled back in case of crash.

Setting name...: tx.useLog
Default value..: true
Set at run-time: false

Index

index.embeddedToSbtreeBonsaiThreshold

Amount of values, after which the index implementation will use an sbtree as a values container. Set to -1, to disable and force using an sbtree.

Setting name...: index.embeddedToSbtreeBonsaiThreshold
Default value..: 40
Set at run-time: true
index.sbtreeBonsaiToEmbeddedThreshold

Amount of values, after which index implementation will use an embedded values container (disabled by default).

Setting name...: index.sbtreeBonsaiToEmbeddedThreshold
Default value..: -1
Set at run-time: true
index.auto.synchronousAutoRebuild

Synchronous execution of auto rebuilding of indexes, in case of a DB crash.

Setting name...: index.auto.synchronousAutoRebuild
Default value..: true
Set at run-time: false
index.auto.lazyUpdates

Configure the TreeMaps for automatic indexes, as buffered or not. -1 means buffered until tx.commit() or db.close() are called.

Setting name...: index.auto.lazyUpdates
Default value..: 10000
Set at run-time: false
index.flushAfterCreate

Flush storage buffer after index creation.

Setting name...: index.flushAfterCreate
Default value..: true
Set at run-time: false
index.manual.lazyUpdates

Configure the TreeMaps for manual indexes as buffered or not. -1 means buffered until tx.commit() or db.close() are called.

Setting name...: index.manual.lazyUpdates
Default value..: 1
Set at run-time: false
index.durableInNonTxMode

Indicates whether index implementation for plocal storage will be durable in non-Tx mode (true by default).

Setting name...: index.durableInNonTxMode
Default value..: true
Set at run-time: false
index.ignoreNullValuesDefault

Controls whether null values will be ignored by default by newly created indexes or not (false by default).

Setting name...: index.ignoreNullValuesDefault
Default value..: false
Set at run-time: false
index.txMode

Indicates the index durability level in TX mode. Can be ROLLBACK_ONLY or FULL (ROLLBACK_ONLY by default).

Setting name...: index.txMode
Default value..: FULL
Set at run-time: false
index.cursor.prefetchSize

Default prefetch size of index cursor.

Setting name...: index.cursor.prefetchSize
Default value..: 500000
Set at run-time: false
index.auto.rebuildAfterNotSoftClose

Auto rebuild all automatic indexes after upon database open when wasn't closed properly.

Setting name...: index.auto.rebuildAfterNotSoftClose
Default value..: true
Set at run-time: false

HashTable

hashTable.slitBucketsBuffer.length

Length of buffer (in pages), where buckets that were split, but not flushed to the disk, are kept. This buffer is used to minimize random IO overhead.

Setting name...: hashTable.slitBucketsBuffer.length
Default value..: 1500
Set at run-time: false

Sbtree

sbtree.maxDepth

Maximum depth of sbtree, which will be traversed during key look up until it will be treated as broken (64 by default).

Setting name...: sbtree.maxDepth
Default value..: 64
Set at run-time: false
sbtree.maxKeySize

Maximum size of a key, which can be put in the SBTree in bytes (10240 by default).

Setting name...: sbtree.maxKeySize
Default value..: 10240
Set at run-time: false
sbtree.maxEmbeddedValueSize

Maximum size of value which can be put in an SBTree without creation link to a standalone page in bytes (40960 by default).

Setting name...: sbtree.maxEmbeddedValueSize
Default value..: 40960
Set at run-time: false

Sbtreebonsai

sbtreebonsai.bucketSize

Size of bucket in OSBTreeBonsai (in kB). Contract: bucketSize < storagePageSize, storagePageSize % bucketSize == 0.

Setting name...: sbtreebonsai.bucketSize
Default value..: 2
Set at run-time: false
sbtreebonsai.linkBagCache.size

Amount of LINKBAG collections to be cached, to avoid constant reloading of data.

Setting name...: sbtreebonsai.linkBagCache.size
Default value..: 100000
Set at run-time: false
sbtreebonsai.linkBagCache.evictionSize

The number of cached LINKBAG collections, which will be removed, when the cache limit is reached.

Setting name...: sbtreebonsai.linkBagCache.evictionSize
Default value..: 1000
Set at run-time: false
sbtreebonsai.freeSpaceReuseTrigger

How much free space should be in an sbtreebonsai file, before it will be reused during the next allocation.

Setting name...: sbtreebonsai.freeSpaceReuseTrigger
Default value..: 0.5
Set at run-time: false

RidBag

ridBag.embeddedDefaultSize

Size of embedded RidBag array, when created (empty).

Setting name...: ridBag.embeddedDefaultSize
Default value..: 4
Set at run-time: false
ridBag.embeddedToSbtreeBonsaiThreshold

Amount of values after which a LINKBAG implementation will use sbtree as values container. Set to -1 to always use an sbtree.

Setting name...: ridBag.embeddedToSbtreeBonsaiThreshold
Default value..: 40
Set at run-time: true
ridBag.sbtreeBonsaiToEmbeddedToThreshold

Amount of values, after which a LINKBAG implementation will use an embedded values container (disabled by default).

Setting name...: ridBag.sbtreeBonsaiToEmbeddedToThreshold
Default value..: -1
Set at run-time: true

Collections

collections.preferSBTreeSet

This configuration setting is experimental.

Setting name...: collections.preferSBTreeSet
Default value..: false
Set at run-time: false

File

file.trackFileClose

Log all the cases when files are closed. This is needed only for internal debugging purposes.

Setting name...: file.trackFileClose
Default value..: false
Set at run-time: false
file.lock

Locks files when used. Default is true.

Setting name...: file.lock
Default value..: true
Set at run-time: false
file.deleteDelay

Delay time (in ms) to wait for another attempt to delete a locked file.

Setting name...: file.deleteDelay
Default value..: 10
Set at run-time: false
file.deleteRetry

Number of retries to delete a locked file.

Setting name...: file.deleteRetry
Default value..: 50
Set at run-time: false

Security

security.userPasswordSaltIterations

Number of iterations to generate the salt or user password. Changing this setting does not affect stored passwords.

Setting name...: security.userPasswordSaltIterations
Default value..: 65536
Set at run-time: false
security.userPasswordSaltCacheSize

Cache size of hashed salt passwords. The cache works as LRU. Use 0 to disable the cache.

Setting name...: security.userPasswordSaltCacheSize
Default value..: 500
Set at run-time: false
security.userPasswordDefaultAlgorithm

Default encryption algorithm used for passwords hashing.

Setting name...: security.userPasswordDefaultAlgorithm
Default value..: PBKDF2WithHmacSHA256
Set at run-time: false
security.createDefaultUsers

Indicates whether default database users should be created.

Setting name...: security.createDefaultUsers
Default value..: true
Set at run-time: false

Network

network.maxConcurrentSessions

Maximum number of concurrent sessions.

Setting name...: network.maxConcurrentSessions
Default value..: 1000
Set at run-time: true
network.socketBufferSize

TCP/IP Socket buffer size.

Setting name...: network.socketBufferSize
Default value..: 32768
Set at run-time: true
network.lockTimeout

Timeout (in ms) to acquire a lock against a channel.

Setting name...: network.lockTimeout
Default value..: 15000
Set at run-time: true
network.socketTimeout

TCP/IP Socket timeout (in ms).

Setting name...: network.socketTimeout
Default value..: 15000
Set at run-time: true
network.requestTimeout

Request completion timeout (in ms).

Setting name...: network.requestTimeout
Default value..: 3600000
Set at run-time: true
network.retry

Number of attempts to connect to the server on failure.

Setting name...: network.retry
Default value..: 5
Set at run-time: true
network.retryDelay

The time (in ms) the client must wait, before reconnecting to the server on failure.

Setting name...: network.retryDelay
Default value..: 500
Set at run-time: true
network.binary.loadBalancing.enabled

Asks for DNS TXT record, to determine if load balancing is supported.

Setting name...: network.binary.loadBalancing.enabled
Default value..: false
Set at run-time: true
network.binary.loadBalancing.timeout

Maximum time (in ms) to wait for the answer from DNS about the TXT record for load balancing.

Setting name...: network.binary.loadBalancing.timeout
Default value..: 2000
Set at run-time: true
network.binary.maxLength

TCP/IP max content length (in KB) of BINARY requests.

Setting name...: network.binary.maxLength
Default value..: 16384
Set at run-time: true
network.binary.readResponse.maxTimes

Maximum attempts, until a response can be read. Otherwise, the response will be dropped from the channel.

Setting name...: network.binary.readResponse.maxTimes
Default value..: 20
Set at run-time: true
network.binary.debug

Debug mode: print all data incoming on the binary channel.

Setting name...: network.binary.debug
Default value..: false
Set at run-time: true
network.http.installDefaultCommands

Installs the default HTTP commands.

Setting name...: network.http.installDefaultCommands
Default value..: true
Set at run-time: true
network.http.serverInfo

Server info to send in HTTP responses. Change the default if you want to hide it is a OrientDB Server.

Setting name...: network.http.serverInfo
Default value..: OrientDB Server v.2.2.12-SNAPSHOT
Set at run-time: true
network.http.maxLength

TCP/IP max content length (in bytes) for HTTP requests.

Setting name...: network.http.maxLength
Default value..: 1000000
Set at run-time: true
network.http.streaming

Enable Http chunked streaming for json responses.

Setting name...: network.http.streaming
Default value..: true
Set at run-time: false
network.http.charset

Http response charset.

Setting name...: network.http.charset
Default value..: utf-8
Set at run-time: true
network.http.jsonResponseError

Http response error in json.

Setting name...: network.http.jsonResponseError
Default value..: true
Set at run-time: true
network.http.jsonp

Enable the usage of JSONP, if requested by the client. The parameter name to use is 'callback'.

Setting name...: network.http.jsonp
Default value..: false
Set at run-time: true
network.http.sessionExpireTimeout

Timeout, after which an http session is considered to have expired (in seconds).

Setting name...: network.http.sessionExpireTimeout
Default value..: 300
Set at run-time: false
network.http.useToken

Enable Token based sessions for http.

Setting name...: network.http.useToken
Default value..: false
Set at run-time: false
network.token.secretKey

Network token sercret key.

Setting name...: network.token.secretKey
Default value..: 
Set at run-time: false
network.token.encryptionAlgorithm

Network token algorithm.

Setting name...: network.token.encryptionAlgorithm
Default value..: HmacSHA256
Set at run-time: false
network.token.expireTimeout

Timeout, after which a binary session is considered to have expired (in minutes).

Setting name...: network.token.expireTimeout
Default value..: 60
Set at run-time: false

Profiler

profiler.enabled

Enables the recording of statistics and counters.

Setting name...: profiler.enabled
Default value..: false
Set at run-time: true
profiler.config

Configures the profiler as ,,.

Setting name...: profiler.config
Default value..: null
Set at run-time: true
profiler.autoDump.interval

Dumps the profiler values at regular intervals (in seconds).

Setting name...: profiler.autoDump.interval
Default value..: 0
Set at run-time: true
profiler.maxValues

Maximum values to store. Values are managed in a LRU.

Setting name...: profiler.maxValues
Default value..: 200
Set at run-time: false

Sequence

sequence.maxRetry

Maximum number of retries between attempt to change a sequence in concurrent mode.

Setting name...: sequence.maxRetry
Default value..: 100
Set at run-time: false
sequence.retryDelay

Maximum number of ms to wait between concurrent modification exceptions. The value is computed as random between 1 and this number.

Setting name...: sequence.retryDelay
Default value..: 200
Set at run-time: false

StorageProfiler

storageProfiler.intervalBetweenSnapshots

Interval between snapshots of profiler state in milliseconds.

Setting name...: storageProfiler.intervalBetweenSnapshots
Default value..: 100
Set at run-time: false
storageProfiler.cleanUpInterval

Interval between time series in milliseconds.

Setting name...: storageProfiler.cleanUpInterval
Default value..: 5000
Set at run-time: false

Log

log.console.level

Console logging level.

Setting name...: log.console.level
Default value..: info
Set at run-time: true
log.file.level

File logging level.

Setting name...: log.file.level
Default value..: info
Set at run-time: true
log.console.ansi

ANSI Console support. 'auto' means automatic check if it is supported, 'true' to force using ANSI, 'false' to avoid using ANSI.

Setting name...: log.console.ansi
Default value..: auto
Set at run-time: false

Class

class.minimumClusters

Minimum clusters to create when a new class is created. 0 means Automatic.

Setting name...: class.minimumClusters
Default value..: 0
Set at run-time: false

Cache

cache.local.impl

Local Record cache implementation.

Setting name...: cache.local.impl
Default value..: com.orientechnologies.orient.core.cache.ORecordCacheWeakRefs
Set at run-time: false
cache.local.enabled

Deprecated, Level1 cache cannot be disabled anymore.

Setting name...: cache.local.enabled
Default value..: true
Set at run-time: false

Command

command.timeout

Default timeout for commands (in ms). Maximum number of milliseconds before a command is aborted. Its usage is limited to the legacy SQL executor (versions previous to 3.0); in v 3.0 and following, please use per-query TIMEOUT option (SQL).

Setting name...: command.timeout
Default value..: 0
Set at run-time: true
command.cache.enabled

Enable command cache.

Setting name...: command.cache.enabled
Default value..: false
Set at run-time: false
command.cache.evictStrategy

Command cache strategy between: [INVALIDATE_ALL,PER_CLUSTER].

Setting name...: command.cache.evictStrategy
Default value..: PER_CLUSTER
Set at run-time: false
command.cache.minExecutionTime

Minimum execution time to consider caching the result set.

Setting name...: command.cache.minExecutionTime
Default value..: 10
Set at run-time: false
command.cache.maxResultsetSize

Maximum resultset time to consider caching result set.

Setting name...: command.cache.maxResultsetSize
Default value..: 500
Set at run-time: false

Query

query.parallelAuto

Auto enable parallel query, if requirements are met.

Setting name...: query.parallelAuto
Default value..: false
Set at run-time: false
query.parallelMinimumRecords

Minimum number of records to activate parallel query automatically.

Setting name...: query.parallelMinimumRecords
Default value..: 300000
Set at run-time: false
query.parallelResultQueueSize

Size of the queue that holds results on parallel execution. The queue is blocking, so in case the queue is full, the query threads will be in a wait state.

Setting name...: query.parallelResultQueueSize
Default value..: 20000
Set at run-time: false
query.scanPrefetchPages

Pages to prefetch during scan. Setting this value higher makes scans faster, because it reduces the number of I/O operations, though it consumes more memory. (Use 0 to disable).

Setting name...: query.scanPrefetchPages
Default value..: 20
Set at run-time: false
query.scanBatchSize

Scan clusters in blocks of records. This setting reduces the lock time on the cluster during scans. A high value mean a faster execution, but also a lower concurrency level. Set to 0 to disable batch scanning. Disabling batch scanning is suggested for read-only databases only.

Setting name...: query.scanBatchSize
Default value..: 1000
Set at run-time: false
query.scanThresholdTip

If the total number of records scanned in a query exceeds this setting, then a warning is given. (Use 0 to disable).

Setting name...: query.scanThresholdTip
Default value..: 50000
Set at run-time: false
query.limitThresholdTip

If the total number of returned records exceeds this value, then a warning is given. (Use 0 to disable).

Setting name...: query.limitThresholdTip
Default value..: 10000
Set at run-time: false
query.live.support

Enable/Disable the support of live query. (Use false to disable).

Setting name...: query.live.support
Default value..: true
Set at run-time: false

Statement

statement.cacheSize

Number of parsed SQL statements kept in cache.

Setting name...: statement.cacheSize
Default value..: 100
Set at run-time: false

Sql

sql.graphConsistencyMode

Consistency mode for graphs. It can be 'tx' (default), 'notx_sync_repair' and 'notx_async_repair'. 'tx' uses transactions to maintain consistency. Instead both 'notx_sync_repair' and 'notx_async_repair' do not use transactions, and the consistency, in case of JVM crash, is guaranteed by a database repair operation that run at startup. With 'notx_sync_repair' the repair is synchronous, so the database comes online after the repair is ended, while with 'notx_async_repair' the repair is a background process.

Setting name...: sql.graphConsistencyMode
Default value..: tx
Set at run-time: false

Client

client.channel.maxPool

Maximum size of pool of network channels between client and server. A channel is a TCP/IP connection.

Setting name...: client.channel.maxPool
Default value..: 100
Set at run-time: false
client.connectionPool.waitTimeout

Maximum time, where the client should wait for a connection from the pool, when all connections busy.

Setting name...: client.connectionPool.waitTimeout
Default value..: 5000
Set at run-time: true
client.channel.dbReleaseWaitTimeout

Delay (in ms), after which a data modification command will be resent, if the DB was frozen.

Setting name...: client.channel.dbReleaseWaitTimeout
Default value..: 10000
Set at run-time: true
client.ssl.enabled

Use SSL for client connections.

Setting name...: client.ssl.enabled
Default value..: false
Set at run-time: false
client.ssl.keyStore

Use SSL for client connections.

Setting name...: client.ssl.keyStore
Default value..: null
Set at run-time: false
client.ssl.keyStorePass

Use SSL for client connections.

Setting name...: client.ssl.keyStorePass
Default value..: null
Set at run-time: false
client.ssl.trustStore

Use SSL for client connections.

Setting name...: client.ssl.trustStore
Default value..: null
Set at run-time: false
client.ssl.trustStorePass

Use SSL for client connections.

Setting name...: client.ssl.trustStorePass
Default value..: null
Set at run-time: false
client.krb5.config

Location of the Kerberos configuration file.

Setting name...: client.krb5.config
Default value..: null
Set at run-time: false
client.krb5.ccname

Location of the Kerberos client ticketcache.

Setting name...: client.krb5.ccname
Default value..: null
Set at run-time: false
client.krb5.ktname

Location of the Kerberos client keytab.

Setting name...: client.krb5.ktname
Default value..: null
Set at run-time: false
client.credentialinterceptor

The name of the CredentialInterceptor class.

Setting name...: client.credentialinterceptor
Default value..: null
Set at run-time: false
client.session.tokenBased

Request a token based session to the server.

Setting name...: client.session.tokenBased
Default value..: true
Set at run-time: false
client.channel.minPool

Minimum pool size.

Setting name...: client.channel.minPool
Default value..: 1
Set at run-time: false

Server

server.openAllDatabasesAtStartup

If true, the server opens all the available databases at startup. Available since 2.2.

Setting name...: server.openAllDatabasesAtStartup
Default value..: false
Set at run-time: false
server.channel.cleanDelay

Time in ms of delay to check pending closed connections.

Setting name...: server.channel.cleanDelay
Default value..: 5000
Set at run-time: false
server.cache.staticFile

Cache static resources upon loading.

Setting name...: server.cache.staticFile
Default value..: false
Set at run-time: false
server.log.dumpClientExceptionLevel

Logs client exceptions. Use any level supported by Java java.util.logging.Level class: OFF, FINE, CONFIG, INFO, WARNING, SEVERE.

Setting name...: server.log.dumpClientExceptionLevel
Default value..: FINE
Set at run-time: false
server.log.dumpClientExceptionFullStackTrace

Dumps the full stack trace of the exception sent to the client.

Setting name...: server.log.dumpClientExceptionFullStackTrace
Default value..: false
Set at run-time: true
server.security.file

Location of the OrientDB security.json configuration file.

Setting name...: server.security.file
Default value..: null
Set at run-time: false

Distributed

distributed.crudTaskTimeout

Maximum timeout (in ms) to wait for CRUD remote tasks.

Setting name...: distributed.crudTaskTimeout
Default value..: 3000
Set at run-time: true
distributed.commandTaskTimeout

Maximum timeout (in ms) to wait for command distributed tasks.

Setting name...: distributed.commandTaskTimeout
Default value..: 120000
Set at run-time: true
distributed.commandQuickTaskTimeout

Maximum timeout (in ms) to wait for quick command distributed tasks.

Setting name...: distributed.commandQuickTaskTimeout
Default value..: 5000
Set at run-time: true
distributed.commandLongTaskTimeout

Maximum timeout (in ms) to wait for Long-running distributed tasks.

Setting name...: distributed.commandLongTaskTimeout
Default value..: 86400000
Set at run-time: true
distributed.deployDbTaskTimeout

Maximum timeout (in ms) to wait for database deployment.

Setting name...: distributed.deployDbTaskTimeout
Default value..: 1200000
Set at run-time: true
distributed.deployChunkTaskTimeout

Maximum timeout (in ms) to wait for database chunk deployment.

Setting name...: distributed.deployChunkTaskTimeout
Default value..: 15000
Set at run-time: true
distributed.deployDbTaskCompression

Compression level (between 0 and 9) to use in backup for database deployment.

Setting name...: distributed.deployDbTaskCompression
Default value..: 7
Set at run-time: true
distributed.asynchQueueSize

Queue size to handle distributed asynchronous operations. The bigger is the queue, the more operation are buffered, but also more memory it's consumed. 0 = dynamic allocation, which means up to 2^31-1 entries.

Setting name...: distributed.asynchQueueSize
Default value..: 0
Set at run-time: false
distributed.asynchResponsesTimeout

Maximum timeout (in ms) to collect all the asynchronous responses from replication. After this time the operation is rolled back (through an UNDO).

Setting name...: distributed.asynchResponsesTimeout
Default value..: 15000
Set at run-time: false
distributed.purgeResponsesTimerDelay

Maximum timeout (in ms) to collect all the asynchronous responses from replication. This is the delay the purge thread uses to check asynchronous requests in timeout.

Setting name...: distributed.purgeResponsesTimerDelay
Default value..: 15000
Set at run-time: false
distributed.conflictResolverRepairerChain

Chain of conflict resolver implementation to use.

Setting name...: distributed.conflictResolverRepairerChain
Default value..: majority,content,version
Set at run-time: false
distributed.conflictResolverRepairerCheckEvery

Time (in ms) when the conflict resolver auto-repairer checks for records/cluster to repair.

Setting name...: distributed.conflictResolverRepairerCheckEvery
Default value..: 5000
Set at run-time: true
distributed.conflictResolverRepairerBatch

Number of record to repair in batch.

Setting name...: distributed.conflictResolverRepairerBatch
Default value..: 100
Set at run-time: true
distributed.txAliveTimeout

Maximum timeout (in ms) a distributed transaction can be alive. This timeout is to rollback pending transactions after a while.

Setting name...: distributed.txAliveTimeout
Default value..: 30000
Set at run-time: true
distributed.requestChannels

Number of network channels used to send requests.

Setting name...: distributed.requestChannels
Default value..: 1
Set at run-time: false
distributed.responseChannels

Number of network channels used to send responses.

Setting name...: distributed.responseChannels
Default value..: 1
Set at run-time: false
distributed.heartbeatTimeout

Maximum time in ms to wait for the heartbeat. If the server does not respond in time, it is put offline.

Setting name...: distributed.heartbeatTimeout
Default value..: 10000
Set at run-time: false
distributed.checkHealthCanOfflineServer

In case a server does not respond to the heartbeat message, it is set offline.

Setting name...: distributed.checkHealthCanOfflineServer
Default value..: false
Set at run-time: false
distributed.checkHealthEvery

Time in ms to check the cluster health. Set to 0 to disable it.

Setting name...: distributed.checkHealthEvery
Default value..: 10000
Set at run-time: false
distributed.autoRemoveOfflineServers

This is the amount of time (in ms) the server has to be OFFLINE, before it is automatically removed from the distributed configuration. -1 = never, 0 = immediately, >0 the actual time to wait.

Setting name...: distributed.autoRemoveOfflineServers
Default value..: -1
Set at run-time: true
distributed.publishNodeStatusEvery

Time in ms to publish the node status on distributed map. Set to 0 to disable such refresh of node configuration.

Setting name...: distributed.publishNodeStatusEvery
Default value..: 5000
Set at run-time: true
distributed.localQueueSize

Size of the intra-thread queue for distributed messages.

Setting name...: distributed.localQueueSize
Default value..: 10000
Set at run-time: false
distributed.dbWorkerThreads

Number of parallel worker threads per database that process distributed messages.

Setting name...: distributed.dbWorkerThreads
Default value..: 8
Set at run-time: false
distributed.queueMaxSize

Maximum queue size to mark a node as stalled. If the number of messages in queue are more than this values, the node is restarted with a remote command (0 = no maximum, which means up to 2^31-1 entries).

Setting name...: distributed.queueMaxSize
Default value..: 10000
Set at run-time: false
distributed.backupDirectory

Directory where the copy of an existent database is saved, before it is downloaded from the cluster. Leave it empty to avoid the backup..

Setting name...: distributed.backupDirectory
Default value..: ../backup/databases
Set at run-time: false
distributed.concurrentTxMaxAutoRetry

Maximum attempts the transaction coordinator should execute a transaction automatically, if records are locked. (Minimum is 1 = no attempts).

Setting name...: distributed.concurrentTxMaxAutoRetry
Default value..: 10
Set at run-time: true
distributed.atomicLockTimeout

Timeout (in ms) to acquire a distributed lock on a record. (0=infinite).

Setting name...: distributed.atomicLockTimeout
Default value..: 300
Set at run-time: true
distributed.concurrentTxAutoRetryDelay

Delay (in ms) between attempts on executing a distributed transaction, which had failed because of locked records. (0=no delay).

Setting name...: distributed.concurrentTxAutoRetryDelay
Default value..: 100
Set at run-time: true
distributed.queueTimeout

Maximum timeout (in ms) to wait for the response in replication.

Setting name...: distributed.queueTimeout
Default value..: 500000
Set at run-time: true

Jna

jna.disable.system.library

This property disables using JNA, should it be installed on your system. (Default true) To use JNA bundled with database.

Setting name...: jna.disable.system.library
Default value..: true
Set at run-time: false

Oauth2

oauth2.secretkey

Http OAuth2 secret key.

Setting name...: oauth2.secretkey
Default value..: 
Set at run-time: false

Lazyset

lazyset.workOnStream

Deprecated, now BINARY serialization is used in place of CSV.

Setting name...: lazyset.workOnStream
Default value..: true
Set at run-time: false

Mvrbtree

mvrbtree.timeout

Deprecated, MVRBTREE IS NOT USED ANYMORE IN FAVOR OF SBTREE AND HASHINDEX.

Setting name...: mvrbtree.timeout
Default value..: 0
Set at run-time: false
mvrbtree.nodePageSize

Deprecated, MVRBTREE IS NOT USED ANYMORE IN FAVOR OF SBTREE AND HASHINDEX.

Setting name...: mvrbtree.nodePageSize
Default value..: 256
Set at run-time: false
mvrbtree.loadFactor

Deprecated, MVRBTREE IS NOT USED ANYMORE IN FAVOR OF SBTREE AND HASHINDEX.

Setting name...: mvrbtree.loadFactor
Default value..: 0.7
Set at run-time: false
mvrbtree.optimizeThreshold

Deprecated, MVRBTREE IS NOT USED ANYMORE IN FAVOR OF SBTREE AND HASHINDEX.

Setting name...: mvrbtree.optimizeThreshold
Default value..: 100000
Set at run-time: false
mvrbtree.entryPoints

Deprecated, MVRBTREE IS NOT USED ANYMORE IN FAVOR OF SBTREE AND HASHINDEX.

Setting name...: mvrbtree.entryPoints
Default value..: 64
Set at run-time: false
mvrbtree.optimizeEntryPointsFactor

Deprecated, MVRBTREE IS NOT USED ANYMORE IN FAVOR OF SBTREE AND HASHINDEX.

Setting name...: mvrbtree.optimizeEntryPointsFactor
Default value..: 1.0
Set at run-time: false
mvrbtree.entryKeysInMemory

Deprecated, MVRBTREE IS NOT USED ANYMORE IN FAVOR OF SBTREE AND HASHINDEX.

Setting name...: mvrbtree.entryKeysInMemory
Default value..: false
Set at run-time: false
mvrbtree.entryValuesInMemory

Deprecated, MVRBTREE IS NOT USED ANYMORE IN FAVOR OF SBTREE AND HASHINDEX.

Setting name...: mvrbtree.entryValuesInMemory
Default value..: false
Set at run-time: false
mvrbtree.ridBinaryThreshold

Deprecated, MVRBTREE IS NOT USED ANYMORE IN FAVOR OF SBTREE AND HASHINDEX.

Setting name...: mvrbtree.ridBinaryThreshold
Default value..: -1
Set at run-time: false
mvrbtree.ridNodePageSize

Deprecated, MVRBTREE IS NOT USED ANYMORE IN FAVOR OF SBTREE AND HASHINDEX.

Setting name...: mvrbtree.ridNodePageSize
Default value..: 64
Set at run-time: false
mvrbtree.ridNodeSaveMemory

Deprecated, MVRBTREE IS NOT USED ANYMORE IN FAVOR OF SBTREE AND HASHINDEX.

Setting name...: mvrbtree.ridNodeSaveMemory
Default value..: false
Set at run-time: false

NOTE: On 64-bit systems you have not the limitation of 32-bit systems with memory.

Logging

Logging is configured in a separate file, look at Logging for more information.

Storage configuration

OrientDB allows modifications to the storage configuration. Even though this will be supported with high level commands, for now it's pretty "internal" using Java API.

To get the storage configuration for the current database:

OStorageConfiguration cfg = db.getStorage().getConfiguration();

Look at OStorageConfiguration to discover all the properties you can change. To change the configuration of a cluster get it by ID;

OStoragePhysicalClusterConfigurationLocal clusterCfg = (OStoragePhysicalClusterConfigurationLocal) cfg.clusters.get(3);

To change the default settings for new clusters get the file template object. In this example we change the initial file size from the default 500Kb down to 10Kb:

OStorageSegmentConfiguration defaultCfg = (OStorageSegmentConfiguration) cfg.fileTemplate;
defaultCfg.fileStartSize = "10Kb";

After changes call OStorageConfiguration.update():

cfg.update();

Distributed Configuration

For information about the Distributed Configuration, please refer to the section Distributed Configuration.