Hide All Examples

System Properties

Datomic's Java system properties are all named via the convention datomic.somePropertyName.

Memory settings can be specified in plain bytes, or use k / m / g suffixes for kilobytes / megabytes / gigabytes, e.g. 256m.

Peer properties

Datomic Peer properties should be set using command line arguments, for example:

-Ddatomic.txTimeoutMsec=60000
property use units default
datomic.memcachedPassword memcached password string {none}
datomic.memcachedServers memcached server list host:port(,host:port)* {none}
datomic.memcachedUsername memcached username string {none}
datomic.objectCacheMax size of object cache bytes 50% of VM RAM
datomic.readConcurrency soft limit on concurrent storage reads integer 2x write concurrency
datomic.txTimeoutMsec timeout for Connection.transact integer milliseconds 10000
datomic.metricsCallback callback for reporting peer metrics string {none}
datomic.valcachePath Valcache SSD directory string {none}
datomic.valcacheMaxGb maximum GB Valcache will try to use gigabytes {none}

Transactor properties

The equivalent names in the transactor properties file have no namespace, and are hyphen delimited lower case, e.g. some-property-name. The exception to this rule is the transactor property corresponding to `datomic.memcachedServers`, which is called `memcached`.

Please note that JVM args other than `-Xmx` and `-Xms` passed to `bin/transactor` (including Java system properties passed via `-D`) override Datomic's default Java options, including the GC settings.

system property use units default where to set
datomic.cassandraClusterCallback name of a callback method/fn returning a Cluster string {none} transactor properties file
datomic.heartbeatIntervalMsec interval between heartbeat write to storage integer milliseconds 5000, also the minimum transactor properties file
datomic.licenseKey transactor license key string {none} transactor properties file
datomic.memcachedPassword memcached password string {none} transactor properties file
datomic.memcachedServers memcached server list host:port (,host:port)* {none} transactor properties file
datomic.memcachedUsername memcached username string {none} transactor properties file
datomic.memoryIndexThreshold size that kicks off indexing job bytes {see recommendations} transactor properties file
datomic.memoryIndexMax transactions throttle to let index job catch up bytes {see recommendations} transactor properties file
datomic.gcStoragePaceMsec paces gc-storage delete operations integer (msec) 0 command line arg
datomic.metricsCallback the name of a static Java method or Clojure fn string RAM transactor properties file
datomic.objectCacheMax size of object cache bytes 50% of VM RAM transactor properties file
datomic.pidFile write pid to this file on startup filename {none} transactor properties file
datomic.printConnectionInfo print connection info at startup boolean true command line arg
datomic.sqlUser username for SQL storage string {none} command line arg or transactor properties file
datomic.sqlPassword password for SQL storage string {none} command line arg or transactor properties file
datomic.sqlValidationQuery query used to validate JDBC connections string {see storage docs} transactor properties file
datomic.readConcurrency soft limit on concurrent storage reads integer 2x write concurrency transactor properties file
datomic.writeConcurrency soft limit on concurrent storage writes integer 4 transactor properties file

Backup properties

property use units default
datomic.backupPaceMsec interval to pause between backup writes integer milliseconds {none}
datomic.fileBackupConcurrency number of threads used for file backup/restore integer 5
datomic.s3BackupConcurrency number of threads used for s3 backup/restore integer 25

Properties Changes

  • In 0.8.3814, datomic.objectCacheBytes was deprecated, and renamed to datomic.objectCacheMax.
  • In 0.8.4110, the defaults for datomic.objectCacheMax, datomic.memoryIndexThreshold, and datomic.memoryIndexMax were removed on the transactor, so that the transactor properties file must now specify values for these properties. Peer defaults remain as described above.