Database Options

Database options and database process options control the activity of database processes. Options specified on the database will be applied to all processes started for that database while database process options apply to Transaction Engine (TE), Storage Manager (SM), and Snapshot Storage Manager (SSM) database processes only. All options take effect at process start time for a TE, SM or SSM.

The following table provides information for database options. For each option, the table below lists the following:

Note: All options described in the following table are case-sensitive.

Option Name Option Argument Default Argument Description Scope
archive-id n None Identifier for the archive that an SM or SSM is started on SM, SSM
cipherSuites {TLS|LEGACY-SRP|TLS,LEGACY-SRP} TLS,LEGACY-SRP Specifies accepted encryption protocols available for all connections to engines, administration processes and SQL clients. Protocol preference, is defined by the order in which they are listed as comma-separated values. For more information on encryption protocols, see Network Encryption. Simple
commit {safe | local | remote[:n] | region[:n]} safe There are several types of commit protocols that you can specify for transaction engines. For each protocol, durability is a database transaction property that ensures that changes made during a transaction are persistent and can be re-created if a storage manager terminates and restarts. Database
config config_file None Specifies a configuration file to be passed to the TE, SM or SSM process. The configuration file can contain any of the options in this table, represented as key/value pairs, where each key is separated from its value with whitespace, and each key/value pair resides on its own line in the file. This configuration file will be passed to all processes (TEs, SMs, SSM) in the database. If the configuration file contains any options that might refer to a local directory path, this path must exist on all database hosts. Simple
crash-dir directory $NUODB_LOGDIR/crash Specifies a directory in which to place crash reports for NuoDB processes (TEs, SMs, SSM). This option is for Linux only. $NUODB_LOGDIR for package installations is /var/log/nuodb and for Tar/Local installations is $NUODB_HOME/var/log. Simple
database database_name   The database within the domain to manage. Simple
disable-stats-collection None None Disables automatic collection of statistics for indexes, which is enabled by default. If automatic statistic collection is disabled, it is necessary to manually re-calculate index statistics using the ANALYZE command on every table. For more information on based on all available record versions, see ANALYZE. TE, SM, SSM
enabled-ciphers

Comma-separated list of cipher names

AES-256-CTR,RC4 A list of acceptable ciphers for clients to connect to the database with. This includes both SQL clients as well as management clients (NuoDB ManagerA command line tool that serves similar functions as the NuoDB Automation Console. From the NuoDB Manager, you can manage the life cycle of processes in your NuoDB domain, and you can monitor, analyze and control the domain. NuoDB Manager allows you to specify commands interactively or non-interactively.). The first cipher is the most preferred. Cipher names are case-sensitive and must be entered exactly as shown. The client will supply a list if ciphers it accepts: if no overlap is found the connection will be refused. The full list of available ciphers are: AES-256-CTR, RC4, and None. Simple
io-warn-time milliseconds 10000
(10 seconds)
A message is logged when a disk I/O operation takes longer than the value specified for this option. These log message are prepended with "Slow I/O:...". TE, SM, SSM
io-fatal-time milliseconds 3600000
(1 hour)

A message is logged, and the process is killed, when a disk I/O operation takes longer than the value specified for this option. This avoids a scenario where the entire database hangs because one disk is not responding.

TE, SM, SSM
index-build-spill-to-disk enable|disable disable Required for enabling Spill to Disk during index creation. For more information, see Spill to Disk. TE
journal-dir directory N/A Sets the journal directory. SM, SSM
journal-max-directory-entries n 1000 Sets the maximum number of journal files in a journal sub-directory. A new journal sub-directory is created when the specified limit has been reached. Simple, SM
journal-max-file-size-bytes n 4000000 Specifies the maximum size in bytes of a journal file. However, the journal may write a file larger than the maximum file size if a single compressed journal message is larger than the specified maximum. The journal messages will be appended to the same journal file until the maximum file size is reached. Simple, SM
journal-single-file enable/disable disable Enables or disables the starting of a new journal file for every sync. Simple, SM
journal-sync-method {kernel|disk|osync} disk Specifies the file system synchronization mechanism when the journal needs to ensure the durability of a commit. The synchronization mechanism has been specifically tuned for each supported OS.
  • The kernelsynchronization method is the fastest but requires a battery backed disk controller. The kernel method on Linux also requires the file system to support fallocate, that is, ext4.
  • The disk synchronization method is the most durable but slowest method.
  • The osync method is available for copy-on-write files systems, also known as ZFS.
    For additional information, see Tuning Tips for Journal Performance.
Simple, SM
jvm-lib path   This specifies a path to the JVM, used by Java Stored Procedures. The jvm-lib argument is used to force the TE to load a specific instance of a JVM. If jvm-lib is not specified, the TE will use a search algorithm that on Windows will choose the default JVM as specified in the registry, and on Linux will search for the JVM as specified by the JAVA_HOME environment variable first and then in well-known locations (MacOS Java framework, /usr/java, /usr/lib/java, /opt/java, and so on). Simple, TE
ldap-base ldapBase   Required for LDAP authentication. Starting point for the LDAP search instead of the default

Example:

ldap-dn 'ou=people,dc=example,dc=com'

Simple
ldap-ca ldapCA  

Optional. LDAP certificate authority certificate to validate server certificate for ldaps. (Linux only)

Simple, TE
ldap-conf ldapConf  

Optional. LDAP path to ldap.conf file too use (see man ldap.conf) (Linux only)

Simple, TE
ldap-dn ldapDN   Required for LDAP authentication. This, in conjunction with ldap-pass, allows proxy level authentication and the specified account must have search privileges on the ldap-base. It is used to search for the full Distinguished Name (DN) of the user that connects.

Example:

ldap-dn 'cn=manager, ou=people, dc=example, dc=com

Simple
ldap-lib ldapLib   Optional. LDAP openldap library name (Linux only) Simple, TE
ldap-pass ldapPassword   Required for LDAP authentication. This, in conjunction with ldap-dn, allows proxy level authentication and the specified account must have search privileges on the ldap-base. It is used to search for the full Distinguished Name (DN) of the user that connects. Simple, TE
ldap-type unixwindows   Required for LDAP authentication. LDAP server type. Only unix or windows is allowed. Simple, TE
ldap-uri ldapURI   Required for LDAP authentication. Specify URI referring to

Example:

'ldap://localhost:389'

the LDAP server(s).
Simple
max-client-connections n 0 The number of concurrent client connections a TE will accept. The default (0) allows the TE to accept as many connections as are allowed by the operating system (that is, the same number of sockets that the process can open), minus some reserved for database operations. If the TE cannot accept the number of connections requested (because the operating system does not allow that many open sockets), the TE does not start.

Note: Connections are not created until needed by a client, regardless of this setting. NuoDB only checks the max-client-connections value against the operating system's largest allowed value.

Setting a non-zero value for this startup parameter results in the TE refusing new client connections if the number of current open connections is equal to the value.

Simple, TE
max-full-gc-skips n 100 Specifies the number of normal garbage collection cycles to every full garbage collection cycle (which is every 1000 seconds). By default, there are 100 normal garbage collection cycles to every full garbage collection cycle. For information on generating index statistics, see ANALYZE. TE, SM, SSM
max-http-connections n 16 Maximum number of concurrent HTTP requests permitted towards the same server. This option is useful when you want to the limit the number of current connections between the SM or SSM and the archive. This option can be used only with HDFS and Amazon S3. Simple, TE
max-lost-archives n 0 The number of leader candidates that may be permanently lost (crash and become non-restartable) at a time before durability is compromised. For a database to be available to commit update transactions, max-lost-archives + 1 leader candidates must be running in the system. The default is 0, meaning that the system is resilient to any number of ordinary failures and available for updates as long as at least one leader candidate is running; but, if 1 or more leader candidates is permanently lost then durability may be compromised.

When max-lost-archives > 0, the transaction can fail to commit, and then roll back. But if the whole database fails before the transaction completes roll back, the partially rolled back transaction can be dredged as pre-committed and promoted to committed, thus creating a torn transaction.

Simple
mem n[m|g] 2g

Sets the maximum amount of memory in bytes to be utilized by a database process. To define this amount in megabytes or gigabytes, append either 'm' or 'g' to the value specified, for example 2g. NuoDB recommends that you set this value to the maximum amount of memory available for the database process without causing this process to use swap space.

Simple
node-port [n[,n]] NuoDB decides Port to use for this host, or optionally, a range of port values. By default NuoDB determines the port to be used. Simple
peer-ciphers Comma-separated list of cipher names AES-256-CTR,RC4 A list of acceptable ciphers for peers to connect to the database with. This includes other SMs, TEs, or SSMs as well as connections to the admin services. The first cipher is the most preferred. Cipher names are case-sensitive and must be entered exactly as shown. The client will supply a list if ciphers it accepts: if no overlap is found the connection is refused. The full list of available ciphers are: AES-256-CTR, RC4, and None. Simple
ping-timeout n Not set Normally, processes in the database (TEs, SMs and SSM) ping other processes at regular intervals and wait for a response. When network communication with a process times out, the process is evicted from the database by its peers.
Failure detection can be enabled by setting the ping-timeout option, specified in seconds. NuoDB recommends an interval timeout of 60 seconds or greater.
A setting of 0 means wait forever. That is, there is no time out.
Database
remote-syslog log-options None Equivalent to the syslog option but for use with the remote-syslog-server option. The log options you can specify include those listed in the table at the end of this topic. Simple
remote-syslog-server hostname Not set Send all logging information to the server log at the specified remote host. Simple
scratch-dir directory N/A

Specifies a directory that NuoDB can use for temporary files to facilitate the processing of memory intensive operations.

For SMs, the default value for --scratch-dir is {archive_dir}/nuodbtemp. For TEs, there is no default value.

Simple, TE
scratch-dir-max-size n[m|g] 0

Sets the maximum capacity of the scratch-dir. To define this amount in megabytes or gigabytes, append either 'm' or 'g' to the value specified, for example 2g.

The default value of 0 means that no maximum size enforced by NuoDB.

Simple
snapshot-max-old-versions n 150 percent In an albumA snapshot storage manager uses albums to efficiently manage snapshots. An album refers to a set of snapshots taken during some period of time. Also, an album provides a place to store additional state required to use snapshots., this is the maximum ratio of old record versions to current record versions. If the addition of a records atomThe internal object structure representing all data in a NuoDB database. Atoms are self-coordinating objects that represent specific types of information (such as data, indexes or schemas). Any Atom can serialize itself, transmit its serialized contents to a new replica, send replication messages to replicas of itself. TEs operate on Atoms, listen for changes, and communicate changes with other TEs in the database. The SM allows Atoms to serialize themselves to permanent storage. to an album crosses this threshold, the snapshot storage manager closes the album and begins writing snapshots to a new album. If a database is served by a snapshot storage manager, the snapshot options apply to that SSM. SSM
snapshot-max-size n 10000 snapshots Sets the maximum number of snapshots that an album can contain before the snapshot storage manager must close the album and start saving snapshots in a new album. SSM
snapshot-min-size n 100 snapshots Sets the minimum number of snapshots that an album must contain before the snapshot storage manager can close the album and start saving snapshots in a new album. SSM
snapshot-max-time n 14400 seconds Sets the maximum length of time that an album can be open. If an album is open for this length of time then a snapshot storage manager stops writing snapshots to that album and starts writing snapshots to a new album. SSM
snapshot-min-time n 60 seconds Sets the minimum length of time that an album must be open. After this length of time, the snapshot storage manager can start writing snapshots to a new album. SSM
syslog log-options   Send logging information to the system log. The log options you can specify are listed after this table. Simple
verbose log-options None Report logging and other information. This information is captured in the agent log file.
For information about where the agent log is stored on your platform, see Log Files.
You must specify at least one of the log options specified after this table.
Simple

To use the remote-syslog, syslog or verbose options, you must specify at least one of the following log options. A log option specifies a log severity level (info, warn, error, debug and flush) or a log category (see Description of Logging Categories).

archive i18n security
atoms index services
bootstrap info sql
client-msgs journal sql-index-condition-filtering
debug msgs sql-params
dump net sql-statements
error opt-index-selection stats
failure opt-joins table-events
filter ping threads
flush records transactions
gc registry tx
histograms scheduler validate
hotcopy   warn