Chapter 12. Configuration Reference

This section is the authoritative reference for Titan configuration options. It includes all options for storage and indexing backends that are part of the official Titan distribution.

The table is automatically generated by traversing the keys and namespaces in Titan’s internal configuration management API. Hence, the configuration options as listed on this page are synchronized with a particular Titan release. If a reference to a configuration option in other parts of this documentation is in conflict with its representation on this page, assume the version listed here to be correct.

12.1. Mutability Levels

Each configuration option has a certain mutability level that governs whether and how it can be modified after the database is opened for the first time. The following listing describes the mutability levels.

FIXED
Once the database has been opened, these configuration options cannot be changed for the entire life of the database
GLOBAL_OFFLINE
These options can only be changed for the entire database cluster at once when all instances are shut down
GLOBAL
These options can only be changed globally across the entire database cluster
MASKABLE
These options are global but can be overwritten by a local configuration file
LOCAL
These options can only be provided through a local configuration file

Refer to Section 4.3, “Global Configuration” for information on how to change non-local configuration options.

12.2. Umbrella Namespace

Namespaces marked with an asterisk are umbrella namespaces which means that they can accommodate an arbitrary number of sub-namespaces - each of which uniquely identified by its name. The configuration options listed under an umbrella namespace apply only to those sub-namespaces. Umbrella namespaces are used to configure multiple system components that are of the same type and hence have the same configuration options.

For example, the log namespace is an umbrella namespace because Titan can interface with multiple logging backends, such as the user log, each of which has the same core set of configuration options. To configure the send batch size of the user log to 100 transaction changes, one would have to set the following option in the configuration

log.user.send-batch-size = 100

12.3. Configuration Namespaces and Options

12.3.1. attributes.custom *

Custom attribute serialization and handling

NameDescriptionDatatypeDefault ValueMutability

attributes.custom.[X].attribute-class

Class of the custom attribute to be registered

String

(no default value)

GLOBAL_OFFLINE

attributes.custom.[X].serializer-class

Class of the custom attribute serializer to be registered

String

(no default value)

GLOBAL_OFFLINE

12.3.2. cache

Configuration options that modify Titan’s caching behavior

NameDescriptionDatatypeDefault ValueMutability

cache.db-cache

Whether to enable Titan’s database-level cache, which is shared across all transactions. Enabling this option speeds up traversals by holding hot graph elements in memory, but also increases the likelihood of reading stale data. Disabling it forces each transaction to independently fetch graph elements from storage before reading/writing them.

Boolean

false

MASKABLE

cache.db-cache-clean-wait

How long, in milliseconds, database-level cache will keep entries after flushing them. This option is only useful on distributed storage backends that are capable of acknowledging writes without necessarily making them immediately visible.

Integer

50

GLOBAL_OFFLINE

cache.db-cache-size

Size of Titan’s database level cache. Values between 0 and 1 are interpreted as a percentage of VM heap, while larger values are interpreted as an absolute size in bytes.

Double

0.3

MASKABLE

cache.db-cache-time

Default expiration time, in milliseconds, for entries in the database-level cache. Entries are evicted when they reach this age even if the cache has room to spare. Set to 0 to disable expiration (cache entries live forever or until memory pressure triggers eviction when set to 0).

Long

10000

GLOBAL_OFFLINE

cache.tx-cache-size

Maximum size of the transaction-level cache of recently-used vertices.

Integer

20000

MASKABLE

cache.tx-dirty-size

Initial size of the transaction-level cache of uncommitted dirty vertices. This is a performance hint for write-heavy, performance-sensitive transactional workloads. If set, it should roughly match the median vertices modified per transaction.

Integer

(no default value)

MASKABLE

12.3.3. cluster

Configuration options for multi-machine deployments

NameDescriptionDatatypeDefault ValueMutability

cluster.max-partitions

The number of virtual partition blocks created in the partitioned graph. This should be larger than the maximum expected number of nodesin the Titan graph cluster. Must be bigger than 1 and a power of 2.

Integer

32

FIXED

12.3.4. computer

GraphComputer related configuration

NameDescriptionDatatypeDefault ValueMutability

computer.result-mode

How the graph computer should return the computed results. persist for writing them into the graph, localtx for writing them into the local transaction, or none (default)

String

none

MASKABLE

12.3.5. graph

General configuration options

NameDescriptionDatatypeDefault ValueMutability

graph.allow-stale-config

Whether to allow the local and storage-backend-hosted copies of the configuration to contain conflicting values for options with any of the following types: FIXED, GLOBAL_OFFLINE, GLOBAL. These types are managed globally through the storage backend and cannot be overridden by changing the local configuration. This type of conflict usually indicates misconfiguration. When this option is true, Titan will log these option conflicts, but continue normal operation using the storage-backend-hosted value for each conflicted option. When this option is false, Titan will log these option conflicts, but then it will throw an exception, refusing to start.

Boolean

true

MASKABLE

graph.set-vertex-id

Whether user provided vertex ids should be enabled and Titan’s automatic id allocation be disabled. Useful when operating Titan in concert with another storage system that assigns long ids but disables some of Titan’s advanced features which can lead to inconsistent data. EXPERT FEATURE - USE WITH GREAT CARE.

Boolean

false

FIXED

graph.timestamps

The timestamp resolution to use when writing to storage and indices. Sets the time granularity for the entire graph cluster. To avoid potential inaccuracies, the configured time resolution should match those of the backend systems. Some Titan storage backends declare a preferred timestamp resolution that reflects design constraints in the underlying service. When the backend provides a preferred default, and when this setting is not explicitly declared in the config file, the backend default is used and the general default associated with this setting is ignored. An explicit declaration of this setting overrides both the general and backend-specific defaults.

TimestampProviders

MICRO

FIXED

graph.unique-instance-id

Unique identifier for this Titan instance. This must be unique among all instances concurrently accessing the same stores or indexes. It’s automatically generated by concatenating the hostname, process id, and a static (process-wide) counter. Leaving it unset is recommended.

String

(no default value)

LOCAL

graph.unique-instance-id-suffix

When this is set and unique-instance-id is not, this Titan instance’s unique identifier is generated by concatenating the hostname to the provided number. This is a legacy option which is currently only useful if the JVM’s ManagementFactory.getRuntimeMXBean().getName() is not unique between processes.

Short

(no default value)

LOCAL

12.3.6. gremlin

Gremlin configuration options

NameDescriptionDatatypeDefault ValueMutability

gremlin.graph

The implementation of graph factory that will be sued by gremlin server

String

com.thinkaurelius.titan.core.TitanFactory

LOCAL

12.3.7. ids

General configuration options for graph element IDs

NameDescriptionDatatypeDefault ValueMutability

ids.block-size

Globally reserve graph element IDs in chunks of this size. Setting this too low will make commits frequently block on slow reservation requests. Setting it too high will result in IDs wasted when a graph instance shuts down with reserved but mostly-unused blocks.

Integer

10000

GLOBAL_OFFLINE

ids.flush

When true, vertices and edges are assigned IDs immediately upon creation. When false, IDs are assigned only when the transaction commits. Must be disabled for graph partitioning to work.

Boolean

true

MASKABLE

ids.num-partitions

Number of partition block to allocate for placement of vertices

Integer

10

MASKABLE

ids.placement

Name of the vertex placement strategy or full class name

String

simple

MASKABLE

ids.renew-percentage

When the most-recently-reserved ID block has only this percentage of its total IDs remaining (expressed as a value between 0 and 1), Titan asynchronously begins reserving another block. This helps avoid transaction commits waiting on ID reservation even if the block size is relatively small.

Double

0.3

MASKABLE

ids.renew-timeout

The number of milliseconds that the Titan id pool manager will wait before giving up on allocating a new block of ids

Duration

120000 ms

MASKABLE

12.3.8. ids.authority

Configuration options for graph element ID reservation/allocation

NameDescriptionDatatypeDefault ValueMutability

ids.authority.conflict-avoidance-mode

This setting helps separate Titan instances sharing a single graph storage backend avoid contention when reserving ID blocks, increasing overall throughput.

ConflictAvoidanceMode

NONE

GLOBAL_OFFLINE

ids.authority.conflict-avoidance-tag

Conflict avoidance tag to be used by this Titan instance when allocating IDs

Integer

0

LOCAL

ids.authority.conflict-avoidance-tag-bits

Configures the number of bits of Titan-assigned element IDs that are reserved for the conflict avoidance tag

Integer

4

FIXED

ids.authority.randomized-conflict-avoidance-retries

Number of times the system attempts ID block reservations with random conflict avoidance tags before giving up and throwing an exception

Integer

5

MASKABLE

ids.authority.wait-time

The number of milliseconds the system waits for an ID block reservation to be acknowledged by the storage backend

Duration

300 ms

GLOBAL_OFFLINE

12.3.9. index *

Configuration options for the individual indexing backends

NameDescriptionDatatypeDefault ValueMutability

index.[X].backend

The indexing backend used to extend and optimize Titan’s query functionality. This setting is optional. Titan can use multiple heterogeneous index backends. Hence, this option can appear more than once, so long as the user-defined name between "index" and "backend" is unique among appearances.Similar to the storage backend, this should be set to one of Titan’s built-in shorthand names for its standard index backends (shorthands: lucene, elasticsearch, es, solr) or to the full package and classname of a custom/third-party IndexProvider implementation.

String

elasticsearch

GLOBAL_OFFLINE

index.[X].conf-file

Path to a configuration file for those indexing backends that require/support a separate config file

String

(no default value)

MASKABLE

index.[X].directory

Directory to store index data locally

String

(no default value)

MASKABLE

index.[X].hostname

The hostname or comma-separated list of hostnames of index backend servers. This is only applicable to some index backends, such as elasticsearch and solr.

String[]

127.0.0.1

MASKABLE

index.[X].index-name

Name of the index if required by the indexing backend

String

titan

GLOBAL_OFFLINE

index.[X].map-name

Whether to use the name of the property key as the field name in the index. It must be ensured, that theindexed property key names are valid field names. Renaming the property key will NOT rename the field and its the developers responsibility to avoid field collisions.

Boolean

true

GLOBAL

index.[X].max-result-set-size

Maxium number of results to return if no limit is specified

Integer

100000

MASKABLE

index.[X].port

The port on which to connect to index backend servers

Integer

(no default value)

MASKABLE

12.3.10. index.[X].elasticsearch

Elasticsearch index configuration

NameDescriptionDatatypeDefault ValueMutability

index.[X].elasticsearch.client-only

The Elasticsearch node.client option is set to this boolean value, and the Elasticsearch node.data option is set to the negation of this value. True creates a thin client which holds no data. False creates a regular Elasticsearch cluster node that may store data.

Boolean

true

GLOBAL_OFFLINE

index.[X].elasticsearch.cluster-name

The name of the Elasticsearch cluster. This should match the "cluster.name" setting in the Elasticsearch nodes' configuration.

String

elasticsearch

GLOBAL_OFFLINE

index.[X].elasticsearch.health-request-timeout

When Titan initializes its ES backend, Titan waits up to this duration for the ES cluster health to reach at least yellow status. This string should be formatted as a natural number followed by the lowercase letter "s", e.g. 3s or 60s.

String

30s

MASKABLE

index.[X].elasticsearch.ignore-cluster-name

Whether to bypass validation of the cluster name of connected nodes. This option is only used on the interface configuration track (see manual for information about ES config tracks).

Boolean

true

MASKABLE

index.[X].elasticsearch.interface

Whether to connect to ES using the Node or Transport client (see the "Talking to Elasticsearch" section of the ES manual for discussion of the difference). Setting this option enables the interface config track (see manual for more information about ES config tracks).

String

TRANSPORT_CLIENT

MASKABLE

index.[X].elasticsearch.load-default-node-settings

Whether ES’s Node client will internally attempt to load default configuration settings from system properties/process environment variables. Only meaningful when using the Node client (has no effect with TransportClient).

Boolean

true

MASKABLE

index.[X].elasticsearch.local-mode

On the legacy config track, this option chooses between starting a TransportClient (false) or a Node with JVM-local transport and local data (true). On the interface config track, this option is considered by (but optional for) the Node client and ignored by the TransportClient. See the manual for more information about ES config tracks.

Boolean

false

GLOBAL_OFFLINE

index.[X].elasticsearch.sniff

Whether to enable cluster sniffing. This option only applies to the TransportClient. Enabling this option makes the TransportClient attempt to discover other cluster nodes besides those in the initial host list provided at startup.

Boolean

true

MASKABLE

index.[X].elasticsearch.ttl-interval

The period of time between runs of ES’s bulit-in expired document deleter. This string will become the value of ES’s indices.ttl.interval setting and should be formatted accordingly, e.g. 5s or 60s.

String

5s

MASKABLE

12.3.11. index.[X].elasticsearch.create

Settings related to index creation

NameDescriptionDatatypeDefault ValueMutability

index.[X].elasticsearch.create.sleep

How long to sleep, in milliseconds, between the successful completion of a (blocking) index creation request and the first use of that index. This only applies when creating an index in ES, which typically only happens the first time Titan is started on top of ES. If the index Titan is configured to use already exists, then this setting has no effect.

Long

200

MASKABLE

12.3.12. index.[X].solr

Solr index configuration

NameDescriptionDatatypeDefault ValueMutability

index.[X].solr.dyn-fields

Whether to use dynamic fields (which appends the data type to the field name). If dynamic fields is disabledthe user must map field names and define them explicitly in the schema.

Boolean

true

GLOBAL_OFFLINE

index.[X].solr.http-compression

Enable/disable compression on the HTTP connections made to Solr.

Boolean

false

MASKABLE

index.[X].solr.http-connection-timeout

Solr HTTP connection timeout.

Integer

5000

MASKABLE

index.[X].solr.http-max

Maximum number of HTTP connections in total to all Solr servers.

Integer

100

MASKABLE

index.[X].solr.http-max-per-host

Maximum number of HTTP connections per Solr host.

Integer

20

MASKABLE

index.[X].solr.http-urls

List of URLs to use to connect to Solr Servers (LBHttpSolrClient is used), don’t add core or collection name to the URL.

String[]

http://localhost:8983/solr

MASKABLE

index.[X].solr.key-field-names

Field name that uniquely identifies each document in Solr. Must be specified as a list of collection=field.

String[]

(no default value)

GLOBAL

index.[X].solr.max-shards-per-node

Maximum number of shards per node. This applies when creating a new collection which is only supported under the SolrCloud operation mode.

Integer

1

GLOBAL_OFFLINE

index.[X].solr.mode

The operation mode for Solr which is either via HTTP (http) or using SolrCloud (cloud)

String

cloud

GLOBAL_OFFLINE

index.[X].solr.num-shards

Number of shards for a collection. This applies when creating a new collection which is only supported under the SolrCloud operation mode.

Integer

1

GLOBAL_OFFLINE

index.[X].solr.replication-factor

Replication factor for a collection. This applies when creating a new collection which is only supported under the SolrCloud operation mode.

Integer

1

GLOBAL_OFFLINE

index.[X].solr.ttl_field

Name of the TTL field for Solr collections.

String

ttl

GLOBAL_OFFLINE

index.[X].solr.wait-searcher

When mutating - wait for the index to reflect new mutations before returning. This can have a negative impact on performance.

Boolean

false

LOCAL

index.[X].solr.zookeeper-url

URL of the Zookeeper instance coordinating the SolrCloud cluster

String

localhost:2181

MASKABLE

12.3.13. log *

Configuration options for Titan’s logging system

NameDescriptionDatatypeDefault ValueMutability

log.[X].backend

Define the log backed to use

String

default

GLOBAL_OFFLINE

log.[X].fixed-partition

Whether all log entries are written to one fixed partition even if the backend store is partitioned.This can cause imbalanced loads and should only be used on low volume logs

Boolean

false

GLOBAL_OFFLINE

log.[X].key-consistent

Whether to require consistency for log reading and writing messages to the storage backend

Boolean

false

MASKABLE

log.[X].max-partitions

The maximum number of partitions to use for logging. Setting up this many actual or virtual partitions. Must be bigger than 0and a power of 2.

Integer

(no default value)

FIXED

log.[X].max-read-time

Maximum time in ms to try reading log messages from the backend before failing.

Duration

4000 ms

MASKABLE

log.[X].max-write-time

Maximum time in ms to try persisting log messages against the backend before failing.

Duration

10000 ms

MASKABLE

log.[X].num-buckets

The number of buckets to split log entries into for load balancing

Integer

1

GLOBAL_OFFLINE

log.[X].read-batch-size

Maximum number of log messages to read at a time for logging implementations that read messages in batches

Integer

1024

MASKABLE

log.[X].read-interval

Time in ms between message readings from the backend for this logging implementations that read message in batch

Duration

5000 ms

MASKABLE

log.[X].read-lag-time

Maximum time in ms that it may take for reads to appear in the backend. If a write does not becomevisible in the storage backend in this amount of time, a log reader might miss the message.

Duration

500 ms

MASKABLE

log.[X].read-threads

Number of threads to be used in reading and processing log messages

Integer

1

MASKABLE

log.[X].send-batch-size

Maximum number of log messages to batch up for sending for logging implementations that support batch sending

Integer

256

MASKABLE

log.[X].send-delay

Maximum time in ms that messages can be buffered locally before sending in batch

Duration

1000 ms

MASKABLE

log.[X].ttl

Sets a TTL on all log entries, meaningthat all entries added to this log expire after the configured amount of time. Requiresthat the log implementation supports TTL.

Duration

(no default value)

GLOBAL

12.3.14. metrics

Configuration options for metrics reporting

NameDescriptionDatatypeDefault ValueMutability

metrics.enabled

Whether to enable basic timing and operation count monitoring on backend

Boolean

false

MASKABLE

metrics.merge-stores

Whether to aggregate measurements for the edge store, vertex index, edge index, and ID store

Boolean

true

MASKABLE

metrics.prefix

The default name prefix for Metrics reported by Titan.

String

com.thinkaurelius.titan

MASKABLE

12.3.15. metrics.console

Configuration options for metrics reporting to console

NameDescriptionDatatypeDefault ValueMutability

metrics.console.interval

Time between Metrics reports printing to the console, in milliseconds

Duration

(no default value)

MASKABLE

12.3.16. metrics.csv

Configuration options for metrics reporting to CSV file

NameDescriptionDatatypeDefault ValueMutability

metrics.csv.directory

Metrics CSV output directory

String

(no default value)

MASKABLE

metrics.csv.interval

Time between dumps of CSV files containing Metrics data, in milliseconds

Duration

(no default value)

MASKABLE

12.3.17. metrics.ganglia

Configuration options for metrics reporting through Ganglia

NameDescriptionDatatypeDefault ValueMutability

metrics.ganglia.addressing-mode

Whether to communicate to Ganglia via uni- or multicast

String

unicast

MASKABLE

metrics.ganglia.hostname

The unicast host or multicast group name to which Metrics will send Ganglia data

String

(no default value)

MASKABLE

metrics.ganglia.interval

The number of milliseconds to wait between sending Metrics data to Ganglia

Duration

(no default value)

MASKABLE

metrics.ganglia.port

The port to which Ganglia data are sent

Integer

8649

MASKABLE

metrics.ganglia.protocol-31

Whether to send data to Ganglia in the 3.1 protocol format

Boolean

true

MASKABLE

metrics.ganglia.spoof

If non-null, it must be a valid Gmetric spoof string formatted as an IP:hostname pair. See http://sourceforge.net/apps/trac/ganglia/wiki/gmetric_spoofing for information about this setting.

String

(no default value)

MASKABLE

metrics.ganglia.ttl

The multicast TTL to set on outgoing Ganglia datagrams

Integer

1

MASKABLE

metrics.ganglia.uuid

The host UUID to set on outgoing Ganglia datagrams. See https://github.com/ganglia/monitor-core/wiki/UUIDSources for information about this setting.

String

(no default value)

LOCAL

12.3.18. metrics.graphite

Configuration options for metrics reporting through Graphite

NameDescriptionDatatypeDefault ValueMutability

metrics.graphite.hostname

The hostname to receive Graphite plaintext protocol metric data

String

(no default value)

MASKABLE

metrics.graphite.interval

The number of milliseconds to wait between sending Metrics data

Duration

(no default value)

MASKABLE

metrics.graphite.port

The port to which Graphite data are sent

Integer

2003

MASKABLE

metrics.graphite.prefix

A Graphite-specific prefix for reported metrics

String

(no default value)

MASKABLE

12.3.19. metrics.jmx

Configuration options for metrics reporting through JMX

NameDescriptionDatatypeDefault ValueMutability

metrics.jmx.agentid

The JMX agentId used by Metrics

String

(no default value)

MASKABLE

metrics.jmx.domain

The JMX domain in which to report Metrics

String

(no default value)

MASKABLE

metrics.jmx.enabled

Whether to report Metrics through a JMX MBean

Boolean

false

MASKABLE

12.3.20. metrics.slf4j

Configuration options for metrics reporting through slf4j

NameDescriptionDatatypeDefault ValueMutability

metrics.slf4j.interval

Time between slf4j logging reports of Metrics data, in milliseconds

Duration

(no default value)

MASKABLE

metrics.slf4j.logger

The complete name of the Logger through which Metrics will report via Slf4j

String

(no default value)

MASKABLE

12.3.21. query

Configuration options for query processing

NameDescriptionDatatypeDefault ValueMutability

query.batch

Whether traversal queries should be batched when executed against the storage backend. This can lead to significant performance improvement if there is a non-trivial latency to the backend.

Boolean

false

MASKABLE

query.fast-property

Whether to pre-fetch all properties on first vertex property access. This can eliminate backend calls on subsequentproperty access for the same vertex at the expense of retrieving all properties at once. This can be expensive for vertices with many properties

Boolean

(no default value)

MASKABLE

query.force-index

Whether Titan should throw an exception if a graph query cannot be answered using an index. Doing solimits the functionality of Titan’s graph queries but ensures that slow graph queries are avoided on large graphs. Recommended for production use of Titan.

Boolean

false

MASKABLE

query.ignore-unknown-index-key

Whether to ignore undefined types encountered in user-provided index queries

Boolean

false

MASKABLE

query.smart-limit

Whether the query optimizer should try to guess a smart limit for the query to ensure responsiveness in light of possibly large result sets. Those will be loaded incrementally if this option is enabled.

Boolean

true

MASKABLE

12.3.22. schema

Schema related configuration options

NameDescriptionDatatypeDefault ValueMutability

schema.default

Configures the DefaultSchemaMaker to be used by this graph. If set to none, automatic schema creation is disabled. Defaults to a blueprints compatible schema maker with MULTI edge labels and SINGLE property keys

String

default

MASKABLE

12.3.23. storage

Configuration options for the storage backend. Some options are applicable only for certain backends.

NameDescriptionDatatypeDefault ValueMutability

storage.backend

The primary persistence provider used by Titan. This is required. It should be set one of Titan’s built-in shorthand names for its standard storage backends (shorthands: berkeleyje, cassandrathrift, cassandra, astyanax, embeddedcassandra, hbase, inmemory) or to the full package and classname of a custom/third-party StoreManager implementation.

String

(no default value)

LOCAL

storage.batch-loading

Whether to enable batch loading into the storage backend

Boolean

false

LOCAL

storage.buffer-size

Size of the batch in which mutations are persisted

Integer

1024

MASKABLE

storage.conf-file

Path to a configuration file for those storage backends which require/support a single separate config file.

String

(no default value)

LOCAL

storage.connection-timeout

Default timeout, in milliseconds, when connecting to a remote database instance

Duration

10000 ms

MASKABLE

storage.directory

Storage directory for those storage backends that require local storage

String

(no default value)

LOCAL

storage.hostname

The hostname or comma-separated list of hostnames of storage backend servers. This is only applicable to some storage backends, such as cassandra and hbase.

String[]

127.0.0.1

LOCAL

storage.page-size

Titan break requests that may return many results from distributed storage backends into a series of requests for small chunks/pages of results, where each chunk contains up to this many elements.

Integer

100

MASKABLE

storage.parallel-backend-ops

Whether Titan should attempt to parallelize storage operations

Boolean

true

MASKABLE

storage.password

Password to authenticate against backend

String

(no default value)

LOCAL

storage.port

The port on which to connect to storage backend servers.

Integer

(no default value)

LOCAL

storage.read-only

Read-only database

Boolean

false

LOCAL

storage.read-time

Maximum time (in ms) to wait for a backend read operation to complete successfully. If a backend read operationfails temporarily, Titan will backoff exponentially and retry the operation until the wait time has been exhausted.

Duration

10000 ms

MASKABLE

storage.setup-wait

Time in milliseconds for backend manager to wait for the storage backends to become available when Titan is run in server mode

Duration

60000 ms

MASKABLE

storage.transactions

Enables transactions on storage backends that support them

Boolean

true

MASKABLE

storage.username

Username to authenticate against backend

String

(no default value)

LOCAL

storage.write-time

Maximum time (in ms) to wait for a backend write operation to complete successfully. If a backend write operationfails temporarily, Titan will backoff exponentially and retry the operation until the wait time has been exhausted.

Duration

100000 ms

MASKABLE

12.3.24. storage.berkeleyje

BerkeleyDB JE configuration options

NameDescriptionDatatypeDefault ValueMutability

storage.berkeleyje.cache-percentage

Percentage of JVM heap reserved for BerkeleyJE’s cache

Integer

65

MASKABLE

storage.berkeleyje.isolation-level

The isolation level used by transactions

String

REPEATABLE_READ

MASKABLE

storage.berkeleyje.lock-mode

The BDB record lock mode used for read operations

String

LockMode.DEFAULT

MASKABLE

12.3.25. storage.cassandra

Cassandra storage backend options

NameDescriptionDatatypeDefault ValueMutability

storage.cassandra.atomic-batch-mutate

True to use Cassandra atomic batch mutation, false to use non-atomic batches

Boolean

true

MASKABLE

storage.cassandra.compression

Whether the storage backend should use compression when storing the data

Boolean

true

FIXED

storage.cassandra.compression-block-size

The size of the compression blocks in kilobytes

Integer

64

FIXED

storage.cassandra.compression-type

The sstable_compression value Titan uses when creating column families. This accepts any value allowed by Cassandra’s sstable_compression option. Leave this unset to disable sstable_compression on Titan-created CFs.

String

LZ4Compressor

MASKABLE

storage.cassandra.keyspace

The name of Titan’s keyspace. It will be created if it does not exist.

String

titan

LOCAL

storage.cassandra.read-consistency-level

The consistency level of read operations against Cassandra

String

QUORUM

MASKABLE

storage.cassandra.replication-factor

The number of data replicas (including the original copy) that should be kept. This is only meaningful for storage backends that natively support data replication.

Integer

1

GLOBAL_OFFLINE

storage.cassandra.replication-strategy-class

The replication strategy to use for Titan keyspace

String

org.apache.cassandra.locator.SimpleStrategy

FIXED

storage.cassandra.replication-strategy-options

Replication strategy options, e.g. factor or replicas per datacenter. This list is interpreted as a map. It must have an even number of elements in [key,val,key,val,…] form. A replication_factor set here takes precedence over one set with storage.cassandra.replication-factor

String[]

(no default value)

FIXED

storage.cassandra.write-consistency-level

The consistency level of write operations against Cassandra

String

QUORUM

MASKABLE

12.3.26. storage.cassandra.astyanax

Astyanax-specific Cassandra options

NameDescriptionDatatypeDefault ValueMutability

storage.cassandra.astyanax.cluster-name

Default name for the Cassandra cluster

String

Titan Cluster

MASKABLE

storage.cassandra.astyanax.connection-pool-type

Astyanax’s connection pooler implementation

String

TOKEN_AWARE

MASKABLE

storage.cassandra.astyanax.host-supplier

Host supplier to use when discovery type is set to DISCOVERY_SERVICE or TOKEN_AWARE

String

(no default value)

MASKABLE

storage.cassandra.astyanax.local-datacenter

The name of the local or closest Cassandra datacenter. When set and not whitespace, this value will be passed into ConnectionPoolConfigurationImpl.setLocalDatacenter. When unset or set to whitespace, setLocalDatacenter will not be invoked.

String

(no default value)

MASKABLE

storage.cassandra.astyanax.max-cluster-connections-per-host

Maximum pooled "cluster" connections per host

Integer

3

MASKABLE

storage.cassandra.astyanax.max-connections

Maximum open connections allowed in the pool (counting all hosts)

Integer

-1

MASKABLE

storage.cassandra.astyanax.max-connections-per-host

Maximum pooled connections per host

Integer

32

MASKABLE

storage.cassandra.astyanax.max-operations-per-connection

Maximum number of operations allowed per connection before the connection is closed

Integer

100000

MASKABLE

storage.cassandra.astyanax.node-discovery-type

How Astyanax discovers Cassandra cluster nodes

String

RING_DESCRIBE

MASKABLE

storage.cassandra.astyanax.retry-backoff-strategy

Astyanax’s retry backoff strategy with configuration parameters

String

com.netflix.astyanax.connectionpool.impl.FixedRetryBackoffStrategy,1000,5000

MASKABLE

storage.cassandra.astyanax.retry-delay-slice

Astyanax’s connection pool "retryDelaySlice" parameter

Integer

10000

MASKABLE

storage.cassandra.astyanax.retry-max-delay-slice

Astyanax’s connection pool "retryMaxDelaySlice" parameter

Integer

10

MASKABLE

storage.cassandra.astyanax.retry-policy

Astyanax’s retry policy implementation with configuration parameters

String

com.netflix.astyanax.retry.BoundedExponentialBackoff,100,25000,8

MASKABLE

storage.cassandra.astyanax.retry-suspend-window

Astyanax’s connection pool "retryMaxDelaySlice" parameter

Integer

20000

MASKABLE

12.3.27. storage.cassandra.ssl

Configuration options for SSL

NameDescriptionDatatypeDefault ValueMutability

storage.cassandra.ssl.enabled

Controls use of the SSL connection to Cassandra

Boolean

false

LOCAL

12.3.28. storage.cassandra.ssl.truststore

Configuration options for SSL Truststore.

NameDescriptionDatatypeDefault ValueMutability

storage.cassandra.ssl.truststore.location

Marks the location of the SSL Truststore.

String

 

LOCAL

storage.cassandra.ssl.truststore.password

The password to access SSL Truststore.

String

 

LOCAL

12.3.29. storage.cassandra.thrift

Options for Titan’s own Thrift Cassandra backend

NameDescriptionDatatypeDefault ValueMutability

storage.cassandra.thrift.frame-size

The thrift frame size in mega bytes

Integer

15

MASKABLE

12.3.30. storage.cassandra.thrift.cpool

Options for the Apache commons-pool connection manager

NameDescriptionDatatypeDefault ValueMutability

storage.cassandra.thrift.cpool.evictor-period

Approximate number of milliseconds between runs of the idle connection evictor. Set to -1 to never run the idle connection evictor.

Long

30000

MASKABLE

storage.cassandra.thrift.cpool.idle-test

Whether the idle connection evictor validates idle connections and drops those that fail to validate

Boolean

false

MASKABLE

storage.cassandra.thrift.cpool.idle-tests-per-eviction-run

When the value is negative, e.g. -n, roughly one nth of the idle connections are tested per run. When the value is positive, e.g. n, the min(idle-count, n) connections are tested per run.

Integer

0

MASKABLE

storage.cassandra.thrift.cpool.max-active

Maximum number of concurrently in-use connections (-1 to leave undefined)

Integer

16

MASKABLE

storage.cassandra.thrift.cpool.max-idle

Maximum number of concurrently idle connections (-1 to leave undefined)

Integer

4

MASKABLE

storage.cassandra.thrift.cpool.max-total

Max number of allowed Thrift connections, idle or active (-1 to leave undefined)

Integer

-1

MASKABLE

storage.cassandra.thrift.cpool.max-wait

Maximum number of milliseconds to block when storage.cassandra.thrift.cpool.when-exhausted is set to BLOCK. Has no effect when set to actions besides BLOCK. Set to -1 to wait indefinitely.

Long

-1

MASKABLE

storage.cassandra.thrift.cpool.min-evictable-idle-time

Minimum number of milliseconds a connection must be idle before it is eligible for eviction. See also storage.cassandra.thrift.cpool.evictor-period. Set to -1 to never evict idle connections.

Long

60000

MASKABLE

storage.cassandra.thrift.cpool.min-idle

Minimum number of idle connections the pool attempts to maintain

Integer

0

MASKABLE

storage.cassandra.thrift.cpool.when-exhausted

What to do when clients concurrently request more active connections than are allowed by the pool. The value must be one of BLOCK, FAIL, or GROW.

String

BLOCK

MASKABLE

12.3.31. storage.hbase

HBase storage options

NameDescriptionDatatypeDefault ValueMutability

storage.hbase.compat-class

The package and class name of the HBaseCompat implementation. HBaseCompat masks version-specific HBase API differences. When this option is unset, Titan calls HBase’s VersionInfo.getVersion() and loads the matching compat class at runtime. Setting this option forces Titan to instead reflectively load and instantiate the specified class.

String

(no default value)

MASKABLE

storage.hbase.compression-algorithm

An HBase Compression.Algorithm enum string which will be applied to newly created column families. The compression algorithm must be installed and available on the HBase cluster. Titan cannot install and configure new compression algorithms on the HBase cluster by itself.

String

GZ

MASKABLE

storage.hbase.region-count

The number of initial regions set when creating Titan’s HBase table

Integer

(no default value)

MASKABLE

storage.hbase.regions-per-server

The number of regions per regionserver to set when creating Titan’s HBase table

Integer

(no default value)

MASKABLE

storage.hbase.short-cf-names

Whether to shorten the names of Titan’s column families to one-character mnemonics to conserve storage space

Boolean

true

FIXED

storage.hbase.skip-schema-check

Assume that Titan’s HBase table and column families already exist. When this is true, Titan will not check for the existence of its table/CFs, nor will it attempt to create them under any circumstances. This is useful when running Titan without HBase admin privileges.

Boolean

false

MASKABLE

storage.hbase.table

The name of the table Titan will use. When storage.hbase.skip-schema-check is false, Titan will automatically create this table if it does not already exist.

String

titan

LOCAL

12.3.32. storage.lock

Options for locking on eventually-consistent stores

NameDescriptionDatatypeDefault ValueMutability

storage.lock.backend

Locker type to use

String

consistentkey

GLOBAL_OFFLINE

storage.lock.clean-expired

Whether to delete expired locks from the storage backend

Boolean

false

MASKABLE

storage.lock.expiry-time

Number of milliseconds the system waits for a lock application to be acknowledged by the storage backend

Duration

300000 ms

GLOBAL_OFFLINE

storage.lock.local-mediator-group

This option determines the LocalLockMediator instance used for early detection of lock contention between concurrent Titan graph instances within the same process which are connected to the same storage backend. Titan instances that have the same value for this variable will attempt to discover lock contention among themselves in memory before proceeding with the general-case distributed locking code. Titan generates an appropriate default value for this option at startup. Overridding the default is generally only useful in testing.

String

(no default value)

LOCAL

storage.lock.retries

Number of times the system attempts to acquire a lock before giving up and throwing an exception

Integer

3

MASKABLE

storage.lock.wait-time

Number of milliseconds the system waits for a lock application to be acknowledged by the storage backend

Duration

100 ms

GLOBAL_OFFLINE

12.3.33. storage.meta *

Meta data to include in storage backend retrievals

NameDescriptionDatatypeDefault ValueMutability

storage.meta.[X].timestamps

Whether to include timestamps in retrieved entries for storage backends that automatically annotated entries with timestamps

Boolean

false

GLOBAL

storage.meta.[X].ttl

Whether to include ttl in retrieved entries for storage backends that automatically annotated entries with timestamps

Boolean

false

GLOBAL

storage.meta.[X].visibility

Whether to include visibility in retrieved entries for storage backends that automatically annotated entries with timestamps

Boolean

true

GLOBAL

12.3.34. tx

Configuration options for transaction handling

NameDescriptionDatatypeDefault ValueMutability

tx.log-tx

Whether transaction mutations should be logged to Titan’s write-ahead transaction log which can be used for recovery of partially failed transactions

Boolean

false

GLOBAL

tx.max-commit-time

Maximum time (in ms) that a transaction might take to commit against all backends. This is used by the distributed write-ahead log processing to determine when a transaction can be considered failed (i.e. after this time has elapsed).Must be longer than the maximum allowed write time.

Duration

10000 ms

GLOBAL

12.3.35. tx.recovery

Configuration options for transaction recovery processes

NameDescriptionDatatypeDefault ValueMutability

tx.recovery.verbose

Whether the transaction recovery system should print recovered transactions and other activity to standard output

Boolean

false

MASKABLE