com.thinkaurelius.titan.graphdb.configuration

## Class GraphDatabaseConfiguration

- java.lang.Object
- - com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration

-     public class GraphDatabaseConfiguration
      extends Object

  Provides functionality to configure a `TitanGraph` INSTANCE.

  A graph database configuration is uniquely associated with a graph database and must not be used for multiple databases.

  After a graph database has been initialized with respect to a configuration, some parameters of graph database configuration may no longer be modifiable.
  Author:
    Matthias Bröcheler (me@matthiasb.com);

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static ConfigOption<Boolean>` | `ALLOW_SETTING_VERTEX_ID`
    `static ConfigOption<Boolean>` | `ATTRIBUTE_ALLOW_ALL_SERIALIZABLE`
    `static ConfigNamespace` | `ATTRIBUTE_NS`
    `static String` | `ATTRIBUTE_PREFIX`
    `static ConfigOption<String>` | `AUTH_PASSWORD`
    `static ConfigOption<String>` | `AUTH_USERNAME` Username and password keys to be used to specify an access credential that may be needed to connect with a secured storage backend.
    `static ConfigOption<String>` | `AUTO_TYPE`
    `static ConfigOption<Boolean>` | `BASIC_METRICS` Whether to enable basic timing and operation count monitoring on backend methods using the `com.codahale.metrics` package.
    `static ConfigOption<Integer>` | `BUFFER_SIZE` Buffers graph mutations locally up to the specified number before persisting them against the storage backend.
    `static ConfigNamespace` | `CACHE_NS`
    `static ConfigOption<Integer>` | `CLUSTER_MAX_PARTITIONS`
    `static ConfigNamespace` | `CLUSTER_NS`
    `static ConfigOption<Boolean>` | `CLUSTER_PARTITION` Whether the id space should be partitioned for equal distribution of keys.
    `static ConfigOption<Duration>` | `CONNECTION_TIMEOUT` Default timeout when connecting to a remote database instance
    `static ConfigOption<String>` | `CUSTOM_ATTRIBUTE_CLASS`
    `static ConfigNamespace` | `CUSTOM_ATTRIBUTE_NS`
    `static ConfigOption<String>` | `CUSTOM_SERIALIZER_CLASS`
    `static ConfigOption<Boolean>` | `DB_CACHE`
    `static ConfigOption<Integer>` | `DB_CACHE_CLEAN_WAIT` How long the database level cache will keep keys expired while the mutations that triggered the expiration are being persisted.
    `static ConfigOption<Double>` | `DB_CACHE_SIZE` The size of the database level cache.
    `static ConfigOption<Long>` | `DB_CACHE_TIME` The default expiration time for elements held in the database level cache.
    `static ConfigOption<Boolean>` | `FORCE_INDEX_USAGE`
    `static ConfigOption<String>` | `GANGLIA_ADDRESSING_MODE` Whether to interpret `GANGLIA_HOST_OR_GROUP` as a unicast or multicast address.
    `static ConfigOption<String>` | `GANGLIA_HOST_OR_GROUP` The unicast host or multicast group name to which Metrics will send Ganglia data.
    `static ConfigOption<Duration>` | `GANGLIA_INTERVAL` The number of milliseconds to wait between sending Metrics data to the host or group specified by `GANGLIA_HOST_OR_GROUP`.
    `static ConfigOption<Integer>` | `GANGLIA_PORT` The port to which Ganglia data are sent.
    `static ConfigOption<String>` | `GANGLIA_SPOOF` If non-null, it must be a valid Gmetric spoof string formatted as an IP:hostname pair.
    `static ConfigOption<Integer>` | `GANGLIA_TTL` The multicast TTL to set on outgoing Ganglia datagrams.
    `static ConfigOption<Boolean>` | `GANGLIA_USE_PROTOCOL_31` Whether to send data to Ganglia in the 3.1 protocol format (true) or the 3.0 protocol format (false).
    `static ConfigOption<String>` | `GANGLIA_UUID` The host UUID to set on outgoing Ganglia datagrams.
    `static ConfigNamespace` | `GRAPH_NS`
    `static ConfigOption<String>` | `GRAPHITE_HOST` The hostname to receive Graphite plaintext protocol metric data.
    `static ConfigOption<Duration>` | `GRAPHITE_INTERVAL` The number of milliseconds to wait between sending Metrics data to the host specified `GRAPHITE_HOST`.
    `static ConfigOption<Integer>` | `GRAPHITE_PORT` The port to which Graphite data are sent.
    `static ConfigOption<String>` | `GRAPHITE_PREFIX` A Graphite-specific prefix for reported metrics.
    `static ConfigOption<Integer>` | `IDAUTHORITY_CAV_BITS` Configures the number of bits of Titan assigned ids that are reserved for a unique id marker that allows the id allocation to be scaled over multiple sub-clusters and to reduce race-conditions when a lot of Titan instances attempt to allocate ids at the same time (e.g.
    `static ConfigOption<Integer>` | `IDAUTHORITY_CAV_RETRIES` When Titan allocates IDs with `#IDAUTHORITY_RANDOMIZE_UNIQUEID` enabled, it picks a random unique ID marker and attempts to allocate IDs from a partition using the marker.
    `static ConfigOption<Integer>` | `IDAUTHORITY_CAV_TAG` Unique id marker to be used by this Titan instance when allocating ids.
    `static ConfigOption<ConflictAvoidanceMode>` | `IDAUTHORITY_CONFLICT_AVOIDANCE` Sets the strategy used by `ConsistentKeyIDAuthority` to avoid contention in ID block alloction between Titan instances concurrently sharing a single distributed storage backend.
    `static ConfigNamespace` | `IDAUTHORITY_NS`
    `static ConfigOption<Duration>` | `IDAUTHORITY_WAIT` The number of milliseconds the system waits for an id block application to be acknowledged by the storage backend.
    `static ConfigOption<Integer>` | `IDS_BLOCK_SIZE` Size of the block to be acquired.
    `static ConfigOption<Boolean>` | `IDS_FLUSH` If flush ids is enabled, vertices and edges are assigned ids immediately upon creation.
    `static ConfigNamespace` | `IDS_NS`
    `static ConfigOption<Double>` | `IDS_RENEW_BUFFER_PERCENTAGE` Configures when the id pool manager will attempt to allocate a new id block.
    `static ConfigOption<Duration>` | `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.
    `static ConfigOption<Boolean>` | `IGNORE_UNKNOWN_INDEX_FIELD`
    `static ConfigOption<String>` | `INDEX_BACKEND` Define the indexing backed to use for index support
    `static ConfigOption<String>` | `INDEX_CONF_FILE`
    `static ConfigOption<String>` | `INDEX_DIRECTORY`
    `static ConfigOption<String[]>` | `INDEX_HOSTS`
    `static ConfigOption<Integer>` | `INDEX_MAX_RESULT_SET_SIZE`
    `static ConfigOption<String>` | `INDEX_NAME`
    `static String` | `INDEX_NAMESPACE`
    `static ConfigNamespace` | `INDEX_NS`
    `static ConfigOption<Integer>` | `INDEX_PORT`
    `static ConfigOption<String>` | `INITIAL_TITAN_VERSION`
    `static ConfigOption<String>` | `LOCK_BACKEND` Locker type to use.
    `static ConfigOption<Boolean>` | `LOCK_CLEAN_EXPIRED` Whether to attempt to delete expired locks from the storage backend.
    `static ConfigOption<Duration>` | `LOCK_EXPIRE` Number of milliseconds after which a lock is considered to have expired.
    `static ConfigOption<String>` | `LOCK_LOCAL_MEDIATOR_GROUP` Configuration setting key for the local lock mediator prefix
    `static ConfigNamespace` | `LOCK_NS`
    `static ConfigOption<Integer>` | `LOCK_RETRY` Number of times the system attempts to acquire a lock before giving up and throwing an exception.
    `static ConfigOption<Duration>` | `LOCK_WAIT` The number of milliseconds the system waits for a lock application to be acknowledged by the storage backend.
    `static ConfigOption<String>` | `LOG_BACKEND`
    `static ConfigNamespace` | `LOG_NS`
    `static ConfigOption<Integer>` | `LOG_NUM_BUCKETS`
    `static ConfigOption<Integer>` | `LOG_READ_BATCH_SIZE`
    `static ConfigOption<Duration>` | `LOG_READ_INTERVAL`
    `static ConfigOption<Integer>` | `LOG_READ_THREADS`
    `static ConfigOption<Integer>` | `LOG_SEND_BATCH_SIZE`
    `static ConfigOption<Duration>` | `LOG_SEND_DELAY`
    `static ConfigOption<Duration>` | `LOG_STORE_TTL`
    `static String` | `MANAGEMENT_LOG`
    `static ConfigOption<Duration>` | `MAX_COMMIT_TIME`
    `static ConfigOption<Duration>` | `METRICS_CONSOLE_INTERVAL` Metrics console reporter interval in milliseconds.
    `static ConfigNamespace` | `METRICS_CONSOLE_NS`
    `static ConfigOption<String>` | `METRICS_CSV_DIR` Metrics CSV output directory.
    `static ConfigOption<Duration>` | `METRICS_CSV_INTERVAL` Metrics CSV reporter interval in milliseconds.
    `static ConfigNamespace` | `METRICS_CSV_NS`
    `static ConfigNamespace` | `METRICS_GANGLIA_NS` The configuration namespace within `METRICS_NS` for Ganglia.
    `static ConfigNamespace` | `METRICS_GRAPHITE_NS` The configuration namespace within `METRICS_NS` for Graphite.
    `static ConfigOption<String>` | `METRICS_JMX_AGENTID` The JMX agentId through which to report Metrics.
    `static ConfigOption<String>` | `METRICS_JMX_DOMAIN` The JMX domain in which to report Metrics.
    `static ConfigOption<Boolean>` | `METRICS_JMX_ENABLED` Whether to report Metrics through a JMX MBean.
    `static ConfigNamespace` | `METRICS_JMX_NS`
    `static ConfigOption<Boolean>` | `METRICS_MERGE_STORES` Whether to aggregate measurements for the edge store, vertex index, edge index, and ID store.
    `static ConfigNamespace` | `METRICS_NS` Configuration key prefix for Metrics.
    `static ConfigOption<String>` | `METRICS_PREFIX` The default name prefix for Metrics reported by Titan.
    `static String` | `METRICS_PREFIX_DEFAULT` This is the prefix used outside of a graph database configuration, or for operations where a system-internal transaction is necessary as an implementation detail.
    `static ConfigOption<Duration>` | `METRICS_SLF4J_INTERVAL` Metrics Slf4j reporter interval in milliseconds.
    `static ConfigOption<String>` | `METRICS_SLF4J_LOGGER` The complete name of the Logger through which Metrics will report via Slf4j.
    `static ConfigNamespace` | `METRICS_SLF4J_NS`
    `static String` | `METRICS_SYSTEM_PREFIX_DEFAULT`
    `static ConfigOption<Integer>` | `PAGE_SIZE` Default number of results to pull over the wire when iterating over a distributed storage backend.
    `static ConfigOption<Boolean>` | `PARALLEL_BACKEND_OPS` If enabled, Titan attempts to parallelize storage operations against the storage backend using a fixed thread pool shared across the entire Titan graph database instance.
    `static ConfigOption<Boolean>` | `PROPERTY_PREFETCHING`
    `static ConfigNamespace` | `QUERY_NS`
    `static ConfigNamespace` | `REGISTRATION_NS`
    `static ConfigOption<Timepoint>` | `REGISTRATION_TIME`
    `static ConfigNamespace` | `ROOT_NS`
    `static ConfigNamespace` | `SCHEMA_NS`
    `static ConfigOption<Duration>` | `SETUP_WAITTIME` Time in milliseconds for backend manager to wait for the storage backends to become available when Titan is run in server mode.
    `static ConfigOption<String>` | `STORAGE_BACKEND` Define the storage backed to use for persistence
    `static ConfigOption<Boolean>` | `STORAGE_BATCH` Enables batch loading which improves write performance but assumes that only one thread is interacting with the graph
    `static ConfigOption<String>` | `STORAGE_CONF_FILE` Path to a configuration file for those storage backends that require/support a separate config file
    `static ConfigOption<String>` | `STORAGE_DIRECTORY` Storage directory for those storage backends that require local storage
    `static ConfigOption<String[]>` | `STORAGE_HOSTS` A unique identifier for the machine running the TitanGraph instance.
    `static ConfigNamespace` | `STORAGE_NS`
    `static ConfigOption<Integer>` | `STORAGE_PORT` Configuration key for the port on which to connect to remote storage backend servers.
    `static ConfigOption<Duration>` | `STORAGE_READ_WAITTIME`
    `static ConfigOption<Boolean>` | `STORAGE_READONLY` Specifies whether this database is read-only, i.e.
    `static ConfigOption<Boolean>` | `STORAGE_TRANSACTIONAL` Enables transactions on storage backends that support them
    `static ConfigOption<Duration>` | `STORAGE_WRITE_WAITTIME` Number of times the database attempts to execute a read operation against the storage layer in the current transaction.
    `static ConfigNamespace` | `STORE_META_NS`
    `static ConfigOption<Boolean>` | `STORE_META_TIMESTAMPS`
    `static ConfigOption<Boolean>` | `STORE_META_TTL`
    `static ConfigOption<Boolean>` | `STORE_META_VISIBILITY`
    `static String` | `SYSTEM_CONFIGURATION_IDENTIFIER`
    `static ConfigOption<Boolean>` | `SYSTEM_LOG_TRANSACTIONS`
    `static String` | `SYSTEM_PROPERTIES_STORE_NAME`
    `static ConfigOption<Timestamps>` | `TIMESTAMP_PROVIDER`
    `static String` | `TRANSACTION_LOG`
    `static StandardDuration` | `TRANSACTION_LOG_DEFAULT_TTL`
    `static ConfigNamespace` | `TRANSACTION_NS`
    `static ConfigOption<Integer>` | `TX_CACHE_SIZE` Configures the maximum number of recently-used vertices cached by a transaction.
    `static ConfigOption<Integer>` | `TX_DIRTY_SIZE` Configures the initial size of the dirty (modified) vertex map used by a transaction.
    `static String` | `UKNOWN_FIELD_NAME`
    `static ConfigOption<String>` | `UNIQUE_INSTANCE_ID`
    `static ConfigOption<Short>` | `UNIQUE_INSTANCE_ID_SUFFIX`
    `static String` | `USER_LOG`
    `static String` | `USER_LOG_PREFIX`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `GraphDatabaseConfiguration(ReadConfiguration localConfig)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `allowVertexIdSetting()`
    `static ModifiableConfiguration` | `buildConfiguration()`
    `Backend` | `getBackend()`
    `String` | `getBackendDescription()`
    `DefaultSchemaMaker` | `getDefaultSchemaMaker()`
    `static ModifiableConfiguration` | `getGlobalSystemConfig(Backend backend)`
    `File` | `getHomeDirectory()` Returns the home directory for the graph database initialized in this configuration
    `String` | `getHomePath()` Returns the home directory path for the graph database initialized in this configuration
    `VertexIDAssigner` | `getIDAssigner(Backend backend)`
    `Duration` | `getMaxCommitTime()`
    `Duration` | `getMaxWriteTime()`
    `String` | `getMetricsPrefix()`
    `static String` | `getOrGenerateUniqueInstanceId(Configuration config)`
    `static String` | `getPath(File dir)`
    `static List<RegisteredAttributeClass<?>>` | `getRegisteredAttributeClasses(Configuration configuration)`
    `Serializer` | `getSerializer()`
    `static Serializer` | `getSerializer(Configuration configuration)`
    `StoreFeatures` | `getStoreFeatures()`
    `static String` | `getSystemMetricsPrefix()`
    `TimestampProvider` | `getTimestampProvider()`
    `int` | `getTxDirtyVertexSize()`
    `int` | `getTxVertexCacheSize()`
    `SchemaCache` | `getTypeCache(SchemaCache.StoreRetrieval retriever)`
    `String` | `getUniqueGraphId()`
    `String` | `getUnknownIndexKeyName()`
    `boolean` | `hasFlushIDs()`
    `boolean` | `hasForceIndexUsage()`
    `boolean` | `hasLogTransactions()`
    `boolean` | `hasPropertyPrefetching()`
    `boolean` | `hasSerializeAll()`
    `boolean` | `isBatchLoading()`
    `boolean` | `isReadOnly()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### ROOT_NS

          public static ConfigNamespace ROOT_NS

    - #### GRAPH_NS

          public static final ConfigNamespace GRAPH_NS

    - #### ALLOW_SETTING_VERTEX_ID

          public static final ConfigOption<Boolean> ALLOW_SETTING_VERTEX_ID

    - #### TIMESTAMP_PROVIDER

          public static final ConfigOption<Timestamps> TIMESTAMP_PROVIDER

    - #### UNIQUE_INSTANCE_ID

          public static final ConfigOption<String> UNIQUE_INSTANCE_ID

    - #### UNIQUE_INSTANCE_ID_SUFFIX

          public static final ConfigOption<Short> UNIQUE_INSTANCE_ID_SUFFIX

    - #### INITIAL_TITAN_VERSION

          public static final ConfigOption<String> INITIAL_TITAN_VERSION

    - #### REGISTRATION_NS

          public static final ConfigNamespace REGISTRATION_NS

    - #### REGISTRATION_TIME

          public static final ConfigOption<Timepoint> REGISTRATION_TIME

    - #### TRANSACTION_NS

          public static final ConfigNamespace TRANSACTION_NS

    - #### SYSTEM_LOG_TRANSACTIONS

          public static final ConfigOption<Boolean> SYSTEM_LOG_TRANSACTIONS

    - #### MAX_COMMIT_TIME

          public static final ConfigOption<Duration> MAX_COMMIT_TIME

    - #### QUERY_NS

          public static final ConfigNamespace QUERY_NS

    - #### IGNORE_UNKNOWN_INDEX_FIELD

          public static final ConfigOption<Boolean> IGNORE_UNKNOWN_INDEX_FIELD

    - #### UKNOWN_FIELD_NAME

          public static final String UKNOWN_FIELD_NAME

      See Also:
        Constant Field Values

    - #### FORCE_INDEX_USAGE

          public static final ConfigOption<Boolean> FORCE_INDEX_USAGE

    - #### PROPERTY_PREFETCHING

          public static final ConfigOption<Boolean> PROPERTY_PREFETCHING

    - #### SCHEMA_NS

          public static final ConfigNamespace SCHEMA_NS

    - #### AUTO_TYPE

          public static final ConfigOption<String> AUTO_TYPE

    - #### CACHE_NS

          public static final ConfigNamespace CACHE_NS

    - #### DB_CACHE

          public static final ConfigOption<Boolean> DB_CACHE

    - #### DB_CACHE_SIZE

          public static final ConfigOption<Double> DB_CACHE_SIZE

      The size of the database level cache. If this value is between 0.0 (strictly bigger) and 1.0 (strictly smaller), then it is interpreted as a percentage of the total heap space available to the JVM this Titan instance is running in. If this value is bigger than 1.0 it is interpreted as an absolute size in bytes.

    - #### DB_CACHE_CLEAN_WAIT

          public static final ConfigOption<Integer> DB_CACHE_CLEAN_WAIT

      How long the database level cache will keep keys expired while the mutations that triggered the expiration are being persisted. This value should be larger than the time it takes for persisted mutations to become visible. This setting only ever makes sense for distributed storage backends where writes may be accepted but are not immediately readable.

    - #### DB_CACHE_TIME

          public static final ConfigOption<Long> DB_CACHE_TIME

      The default expiration time for elements held in the database level cache. This is the time period before Titan will check against storage backend for a newer query answer. Setting this value to 0 will cache elements forever (unless they get evicted due to space constraints). This only makes sense when this is the only Titan instance interacting with a storage backend.

    - #### TX_CACHE_SIZE

          public static final ConfigOption<Integer> TX_CACHE_SIZE

      Configures the maximum number of recently-used vertices cached by a transaction. The smaller the cache size, the less memory a transaction can consume at maximum. For many concurrent, long running transactions in memory constraint environments, reducing the cache size can avoid OutOfMemory and GC limit exceeded exceptions. Note, however, that all modifications in a transaction must always be kept in memory and hence this setting does not have much impact on write intense transactions. Those must be split into smaller transactions in the case of memory errors.

      The recently-used vertex cache can contain both dirty and clean vertices, that is, both vertices which have been created or updated in the current transaction and vertices which have only been read in the current transaction.

    - #### TX_DIRTY_SIZE

          public static final ConfigOption<Integer> TX_DIRTY_SIZE

      Configures the initial size of the dirty (modified) vertex map used by a transaction. All vertices created or updated by a transaction are held in that transaction's dirty vertex map until the transaction commits. This option sets the initial size of the dirty map. Unlike `TX_CACHE_SIZE`, this is not a maximum. The transaction will transparently allocate more space to store dirty vertices if this initial size hint is exceeded. Transactions that know how many vertices they are likely to modify a priori can avoid resize costs associated with growing the dirty vertex data structure by setting this option.

    - #### STORAGE_NS

          public static final ConfigNamespace STORAGE_NS

    - #### STORAGE_DIRECTORY

          public static final ConfigOption<String> STORAGE_DIRECTORY

      Storage directory for those storage backends that require local storage

    - #### STORAGE_CONF_FILE

          public static final ConfigOption<String> STORAGE_CONF_FILE

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

    - #### STORAGE_BACKEND

          public static final ConfigOption<String> STORAGE_BACKEND

      Define the storage backed to use for persistence

    - #### STORAGE_READONLY

          public static final ConfigOption<Boolean> STORAGE_READONLY

      Specifies whether this database is read-only, i.e. write operations are not supported

    - #### STORAGE_BATCH

          public static final ConfigOption<Boolean> STORAGE_BATCH

      Enables batch loading which improves write performance but assumes that only one thread is interacting with the graph

    - #### STORAGE_TRANSACTIONAL

          public static final ConfigOption<Boolean> STORAGE_TRANSACTIONAL

      Enables transactions on storage backends that support them

    - #### BUFFER_SIZE

          public static final ConfigOption<Integer> BUFFER_SIZE

      Buffers graph mutations locally up to the specified number before persisting them against the storage backend. Set to 0 to disable buffering. Buffering is disabled automatically if the storage backend does not support buffered mutations.

    - #### STORAGE_WRITE_WAITTIME

          public static final ConfigOption<Duration> STORAGE_WRITE_WAITTIME

      Number of times the database attempts to execute a read operation against the storage layer in the current transaction. A read operation might fail for various reasons, some of which are temporary such as network failures. For temporary failures, Titan will re-attempt to read the state up to the number of times specified before failing the transaction

    - #### STORAGE_READ_WAITTIME

          public static final ConfigOption<Duration> STORAGE_READ_WAITTIME

    - #### PARALLEL_BACKEND_OPS

          public static final ConfigOption<Boolean> PARALLEL_BACKEND_OPS

      If enabled, Titan attempts to parallelize storage operations against the storage backend using a fixed thread pool shared across the entire Titan graph database instance. Parallelization is only applicable to certain storage operations and can be beneficial when the operation is I/O bound.

    - #### STORAGE_HOSTS

          public static final ConfigOption<String[]> STORAGE_HOSTS

      A unique identifier for the machine running the TitanGraph instance. It must be ensured that no other machine accessing the storage backend can have the same identifier.

    - #### STORAGE_PORT

          public static final ConfigOption<Integer> STORAGE_PORT

      Configuration key for the port on which to connect to remote storage backend servers.

      Value =

    - #### AUTH_USERNAME

          public static final ConfigOption<String> AUTH_USERNAME

      Username and password keys to be used to specify an access credential that may be needed to connect with a secured storage backend.

    - #### AUTH_PASSWORD

          public static final ConfigOption<String> AUTH_PASSWORD

    - #### CONNECTION_TIMEOUT

          public static final ConfigOption<Duration> CONNECTION_TIMEOUT

      Default timeout when connecting to a remote database instance

    - #### SETUP_WAITTIME

          public static final ConfigOption<Duration> SETUP_WAITTIME

      Time in milliseconds for backend manager to wait for the storage backends to become available when Titan is run in server mode. Should the backend manager experience exceptions when attempting to access the storage backend it will retry until this timeout is exceeded.

      A wait time of 0 disables waiting.

    - #### PAGE_SIZE

          public static final ConfigOption<Integer> PAGE_SIZE

      Default number of results to pull over the wire when iterating over a distributed storage backend. This is batch size of results to pull when iterating a result set.

    - #### LOCK_NS

          public static final ConfigNamespace LOCK_NS

    - #### LOCK_RETRY

          public static final ConfigOption<Integer> LOCK_RETRY

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

    - #### LOCK_WAIT

          public static final ConfigOption<Duration> LOCK_WAIT

      The number of milliseconds the system waits for a lock application to be acknowledged by the storage backend. Also, the time waited at the end of all lock applications before verifying that the applications were successful. This value should be a small multiple of the average consistent write time.

    - #### LOCK_EXPIRE

          public static final ConfigOption<Duration> LOCK_EXPIRE

      Number of milliseconds after which a lock is considered to have expired. Lock applications that were not released are considered expired after this time and released. This value should be larger than the maximum time a transaction can take in order to guarantee that no correctly held applications are expired pre-maturely and as small as possible to avoid dead lock.

    - #### LOCK_CLEAN_EXPIRED

          public static final ConfigOption<Boolean> LOCK_CLEAN_EXPIRED

      Whether to attempt to delete expired locks from the storage backend. True will attempt to delete expired locks in a background daemon thread. False will never attempt to delete expired locks. This option is only meaningful for the default lock backend.
      See Also:
        `LOCK_BACKEND`

    - #### LOCK_BACKEND

          public static final ConfigOption<String> LOCK_BACKEND

      Locker type to use. The supported types are in `Backend`.

    - #### LOCK_LOCAL_MEDIATOR_GROUP

          public static final ConfigOption<String> LOCK_LOCAL_MEDIATOR_GROUP

      Configuration setting key for the local lock mediator prefix

    - #### STORE_META_NS

          public static final ConfigNamespace STORE_META_NS

    - #### STORE_META_TIMESTAMPS

          public static final ConfigOption<Boolean> STORE_META_TIMESTAMPS

    - #### STORE_META_TTL

          public static final ConfigOption<Boolean> STORE_META_TTL

    - #### STORE_META_VISIBILITY

          public static final ConfigOption<Boolean> STORE_META_VISIBILITY

    - #### CLUSTER_NS

          public static final ConfigNamespace CLUSTER_NS

    - #### CLUSTER_PARTITION

          public static final ConfigOption<Boolean> CLUSTER_PARTITION

      Whether the id space should be partitioned for equal distribution of keys. If the keyspace is ordered, this needs to be enabled to ensure an even distribution of data. If the keyspace is random/hashed, then enabling this only has the benefit of de-congesting a single id pool in the database.

    - #### CLUSTER_MAX_PARTITIONS

          public static final ConfigOption<Integer> CLUSTER_MAX_PARTITIONS

    - #### IDS_NS

          public static final ConfigNamespace IDS_NS

    - #### IDS_BLOCK_SIZE

          public static final ConfigOption<Integer> IDS_BLOCK_SIZE

      Size of the block to be acquired. Larger block sizes require fewer block applications but also leave a larger fraction of the id pool occupied and potentially lost. For write heavy applications, larger block sizes should be chosen.

    - #### IDS_FLUSH

          public static final ConfigOption<Boolean> IDS_FLUSH

      If flush ids is enabled, vertices and edges are assigned ids immediately upon creation. If not, then ids are only assigned when the transaction is committed.

    - #### IDS_RENEW_TIMEOUT

          public static final ConfigOption<Duration> 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. Note, that failure to allocate a new id block will cause the entire database to fail, hence this value should be set conservatively. Choose a high value if there is a lot of contention around id allocation.

    - #### IDS_RENEW_BUFFER_PERCENTAGE

          public static final ConfigOption<Double> IDS_RENEW_BUFFER_PERCENTAGE

      Configures when the id pool manager will attempt to allocate a new id block. When all but the configured percentage of the current block is consumed, a new block will be allocated. Larger values should be used if a lot of ids are allocated in a short amount of time. Value must be in (0,1].

    - #### IDAUTHORITY_NS

          public static final ConfigNamespace IDAUTHORITY_NS

    - #### IDAUTHORITY_WAIT

          public static final ConfigOption<Duration> IDAUTHORITY_WAIT

      The number of milliseconds the system waits for an id block application to be acknowledged by the storage backend. Also, the time waited after the application before verifying that the application was successful.

    - #### IDAUTHORITY_CONFLICT_AVOIDANCE

          public static final ConfigOption<ConflictAvoidanceMode> IDAUTHORITY_CONFLICT_AVOIDANCE

      Sets the strategy used by `ConsistentKeyIDAuthority` to avoid contention in ID block alloction between Titan instances concurrently sharing a single distributed storage backend.

    - #### IDAUTHORITY_CAV_RETRIES

          public static final ConfigOption<Integer> IDAUTHORITY_CAV_RETRIES

      When Titan allocates IDs with `#IDAUTHORITY_RANDOMIZE_UNIQUEID` enabled, it picks a random unique ID marker and attempts to allocate IDs from a partition using the marker. The ID markers function as subpartitions with each ID partition. If the attempt fails because that partition + uniqueid combination is already completely allocated, then Titan will generate a new random unique ID and try again. This controls the maximum number of attempts before Titan assumes the entire partition is allocated and fails the request. It must be set to at least 1 and should generally be set to 3 or more.

      This setting has no effect when `#IDAUTHORITY_RANDOMIZE_UNIQUEID` is disabled.

    - #### IDAUTHORITY_CAV_BITS

          public static final ConfigOption<Integer> IDAUTHORITY_CAV_BITS

      Configures the number of bits of Titan assigned ids that are reserved for a unique id marker that allows the id allocation to be scaled over multiple sub-clusters and to reduce race-conditions when a lot of Titan instances attempt to allocate ids at the same time (e.g. during parallel bulk loading) IMPORTANT: This should never ever, ever be modified from its initial value and ALL Titan instances must use the same value. Otherwise, data corruption will occur.

    - #### IDAUTHORITY_CAV_TAG

          public static final ConfigOption<Integer> IDAUTHORITY_CAV_TAG

      Unique id marker to be used by this Titan instance when allocating ids. The unique id marker must be non-negative and fit within the number of unique id bits configured. By assigning different unique id markers to individual Titan instances it can be assured that those instances don't conflict with one another when attempting to allocate new id blocks. IMPORTANT: The configured unique id marker must fit within the configured unique id bit width.

    - #### INDEX_NAMESPACE

          public static final String INDEX_NAMESPACE

      See Also:
        Constant Field Values

    - #### INDEX_NS

          public static final ConfigNamespace INDEX_NS

    - #### INDEX_BACKEND

          public static final ConfigOption<String> INDEX_BACKEND

      Define the indexing backed to use for index support

    - #### INDEX_DIRECTORY

          public static final ConfigOption<String> INDEX_DIRECTORY

    - #### INDEX_NAME

          public static final ConfigOption<String> INDEX_NAME

    - #### INDEX_HOSTS

          public static final ConfigOption<String[]> INDEX_HOSTS

    - #### INDEX_PORT

          public static final ConfigOption<Integer> INDEX_PORT

    - #### INDEX_CONF_FILE

          public static final ConfigOption<String> INDEX_CONF_FILE

    - #### INDEX_MAX_RESULT_SET_SIZE

          public static final ConfigOption<Integer> INDEX_MAX_RESULT_SET_SIZE

    - #### LOG_NS

          public static final ConfigNamespace LOG_NS

    - #### MANAGEMENT_LOG

          public static final String MANAGEMENT_LOG

      See Also:
        Constant Field Values

    - #### TRANSACTION_LOG

          public static final String TRANSACTION_LOG

      See Also:
        Constant Field Values

    - #### USER_LOG

          public static final String USER_LOG

      See Also:
        Constant Field Values

    - #### USER_LOG_PREFIX

          public static final String USER_LOG_PREFIX

      See Also:
        Constant Field Values

    - #### TRANSACTION_LOG_DEFAULT_TTL

          public static final StandardDuration TRANSACTION_LOG_DEFAULT_TTL

    - #### LOG_BACKEND

          public static final ConfigOption<String> LOG_BACKEND

    - #### LOG_NUM_BUCKETS

          public static final ConfigOption<Integer> LOG_NUM_BUCKETS

    - #### LOG_SEND_BATCH_SIZE

          public static final ConfigOption<Integer> LOG_SEND_BATCH_SIZE

    - #### LOG_READ_BATCH_SIZE

          public static final ConfigOption<Integer> LOG_READ_BATCH_SIZE

    - #### LOG_SEND_DELAY

          public static final ConfigOption<Duration> LOG_SEND_DELAY

    - #### LOG_READ_INTERVAL

          public static final ConfigOption<Duration> LOG_READ_INTERVAL

    - #### LOG_READ_THREADS

          public static final ConfigOption<Integer> LOG_READ_THREADS

    - #### LOG_STORE_TTL

          public static final ConfigOption<Duration> LOG_STORE_TTL

    - #### ATTRIBUTE_NS

          public static final ConfigNamespace ATTRIBUTE_NS

    - #### ATTRIBUTE_ALLOW_ALL_SERIALIZABLE

          public static final ConfigOption<Boolean> ATTRIBUTE_ALLOW_ALL_SERIALIZABLE

    - #### CUSTOM_ATTRIBUTE_NS

          public static final ConfigNamespace CUSTOM_ATTRIBUTE_NS

    - #### ATTRIBUTE_PREFIX

          public static final String ATTRIBUTE_PREFIX

      See Also:
        Constant Field Values

    - #### CUSTOM_ATTRIBUTE_CLASS

          public static final ConfigOption<String> CUSTOM_ATTRIBUTE_CLASS

    - #### CUSTOM_SERIALIZER_CLASS

          public static final ConfigOption<String> CUSTOM_SERIALIZER_CLASS

    - #### METRICS_NS

          public static final ConfigNamespace METRICS_NS

      Configuration key prefix for Metrics.

    - #### BASIC_METRICS

          public static final ConfigOption<Boolean> BASIC_METRICS

      Whether to enable basic timing and operation count monitoring on backend methods using the `com.codahale.metrics` package.

    - #### METRICS_PREFIX_DEFAULT

          public static final String METRICS_PREFIX_DEFAULT

      This is the prefix used outside of a graph database configuration, or for operations where a system-internal transaction is necessary as an implementation detail. It currently can't be modified, though there is no substantial technical obstacle preventing it from being configured -- some kind of configuration object is in scope everywhere it is used, and it could theoretically be stored in and read from that object.
      See Also:
        Constant Field Values

    - #### METRICS_SYSTEM_PREFIX_DEFAULT

          public static final String METRICS_SYSTEM_PREFIX_DEFAULT

      See Also:
        Constant Field Values

    - #### METRICS_PREFIX

          public static final ConfigOption<String> METRICS_PREFIX

      The default name prefix for Metrics reported by Titan. All metric names will begin with this string and a period. This value can be overridden on a transaction-specific basis through `StandardTransactionBuilder.setGroupName(String)`.

      Default = #METRICS_PREFIX_DEFAULT

    - #### METRICS_MERGE_STORES

          public static final ConfigOption<Boolean> METRICS_MERGE_STORES

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

      If true, then metrics for each of these backends will use the same metric name ("stores"). All of their measurements will be combined. This setting measures the sum of Titan's backend activity without distinguishing between contributions of its various internal stores.

      If false, then metrics for each of these backends will use a unique metric name ("idStore", "edgeStore", "vertexIndex", and "edgeIndex"). This setting exposes the activity associated with each backend component, but it also multiplies the number of measurements involved by four.

      This option has no effect when `BASIC_METRICS` is false.

    - #### METRICS_CONSOLE_NS

          public static final ConfigNamespace METRICS_CONSOLE_NS

    - #### METRICS_CONSOLE_INTERVAL

          public static final ConfigOption<Duration> METRICS_CONSOLE_INTERVAL

      Metrics console reporter interval in milliseconds. Leaving this configuration key absent or null disables the console reporter.

    - #### METRICS_CSV_NS

          public static final ConfigNamespace METRICS_CSV_NS

    - #### METRICS_CSV_INTERVAL

          public static final ConfigOption<Duration> METRICS_CSV_INTERVAL

      Metrics CSV reporter interval in milliseconds. Leaving this configuration key absent or null disables the CSV reporter.

    - #### METRICS_CSV_DIR

          public static final ConfigOption<String> METRICS_CSV_DIR

      Metrics CSV output directory. It will be created if it doesn't already exist. This option must be non-null if `METRICS_CSV_INTERVAL` is non-null. This option has no effect if `#METRICS_CSV_INTERVAL` is null.

    - #### METRICS_JMX_NS

          public static final ConfigNamespace METRICS_JMX_NS

    - #### METRICS_JMX_ENABLED

          public static final ConfigOption<Boolean> METRICS_JMX_ENABLED

      Whether to report Metrics through a JMX MBean.

    - #### METRICS_JMX_DOMAIN

          public static final ConfigOption<String> METRICS_JMX_DOMAIN

      The JMX domain in which to report Metrics. If null, then Metrics applies its default value.

    - #### METRICS_JMX_AGENTID

          public static final ConfigOption<String> METRICS_JMX_AGENTID

      The JMX agentId through which to report Metrics. Calling `MBeanServerFactory.findMBeanServer(String)` on this value must return exactly one `MBeanServer` at runtime. If null, then Metrics applies its default value.

    - #### METRICS_SLF4J_NS

          public static final ConfigNamespace METRICS_SLF4J_NS

    - #### METRICS_SLF4J_INTERVAL

          public static final ConfigOption<Duration> METRICS_SLF4J_INTERVAL

      Metrics Slf4j reporter interval in milliseconds. Leaving this configuration key absent or null disables the Slf4j reporter.

    - #### METRICS_SLF4J_LOGGER

          public static final ConfigOption<String> METRICS_SLF4J_LOGGER

      The complete name of the Logger through which Metrics will report via Slf4j. If non-null, then Metrics will be dumped on `LoggerFactory.getLogger(String)` with the configured value as the argument. If null, then Metrics will use its default Slf4j logger.

    - #### METRICS_GANGLIA_NS

          public static final ConfigNamespace METRICS_GANGLIA_NS

      The configuration namespace within `METRICS_NS` for Ganglia.

    - #### GANGLIA_HOST_OR_GROUP

          public static final ConfigOption<String> GANGLIA_HOST_OR_GROUP

      The unicast host or multicast group name to which Metrics will send Ganglia data. Setting this config key has no effect unless `GANGLIA_INTERVAL` is also set.

    - #### GANGLIA_INTERVAL

          public static final ConfigOption<Duration> GANGLIA_INTERVAL

      The number of milliseconds to wait between sending Metrics data to the host or group specified by `GANGLIA_HOST_OR_GROUP`. This has no effect unless `GANGLIA_HOST_OR_GROUP` is also set.

    - #### GANGLIA_PORT

          public static final ConfigOption<Integer> GANGLIA_PORT

      The port to which Ganglia data are sent.

    - #### GANGLIA_ADDRESSING_MODE

          public static final ConfigOption<String> GANGLIA_ADDRESSING_MODE

      Whether to interpret `GANGLIA_HOST_OR_GROUP` as a unicast or multicast address. If present, it must be either the string "multicast" or the string "unicast".

    - #### GANGLIA_TTL

          public static final ConfigOption<Integer> GANGLIA_TTL

      The multicast TTL to set on outgoing Ganglia datagrams. This has no effect when `GANGLIA_ADDRESSING_MODE` is set to "multicast".

      This is a TTL in the multicast protocol sense (number of routed hops), not a timestamp sense.

    - #### GANGLIA_USE_PROTOCOL_31

          public static final ConfigOption<Boolean> GANGLIA_USE_PROTOCOL_31

      Whether to send data to Ganglia in the 3.1 protocol format (true) or the 3.0 protocol format (false).

    - #### GANGLIA_UUID

          public static final ConfigOption<String> GANGLIA_UUID

      The host UUID to set on outgoing Ganglia datagrams. If null, no UUID is set on outgoing data.

      See https://github.com/ganglia/monitor-core/wiki/UUIDSources

    - #### GANGLIA_SPOOF

          public static final ConfigOption<String> GANGLIA_SPOOF

      If non-null, it must be a valid Gmetric spoof string formatted as an IP:hostname pair. If null, Ganglia will automatically determine the IP and hostname to set on outgoing datagrams.

      See http://sourceforge.net/apps/trac/ganglia/wiki/gmetric_spoofing

    - #### METRICS_GRAPHITE_NS

          public static final ConfigNamespace METRICS_GRAPHITE_NS

      The configuration namespace within `METRICS_NS` for Graphite.

    - #### GRAPHITE_HOST

          public static final ConfigOption<String> GRAPHITE_HOST

      The hostname to receive Graphite plaintext protocol metric data. Setting this config key has no effect unless `GRAPHITE_INTERVAL` is also set.

    - #### GRAPHITE_INTERVAL

          public static final ConfigOption<Duration> GRAPHITE_INTERVAL

      The number of milliseconds to wait between sending Metrics data to the host specified `GRAPHITE_HOST`. This has no effect unless `GRAPHITE_HOST` is also set.

    - #### GRAPHITE_PORT

          public static final ConfigOption<Integer> GRAPHITE_PORT

      The port to which Graphite data are sent.

    - #### GRAPHITE_PREFIX

          public static final ConfigOption<String> GRAPHITE_PREFIX

      A Graphite-specific prefix for reported metrics. If non-null, Metrics prepends this and a "." to all metric names before reporting them to Graphite.

    - #### SYSTEM_PROPERTIES_STORE_NAME

          public static final String SYSTEM_PROPERTIES_STORE_NAME

      See Also:
        Constant Field Values

    - #### SYSTEM_CONFIGURATION_IDENTIFIER

          public static final String SYSTEM_CONFIGURATION_IDENTIFIER

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### GraphDatabaseConfiguration

          public GraphDatabaseConfiguration(ReadConfiguration localConfig)

  - ### Method Detail

    - #### getOrGenerateUniqueInstanceId

          public static String getOrGenerateUniqueInstanceId(Configuration config)

    - #### buildConfiguration

          public static final ModifiableConfiguration buildConfiguration()

    - #### getSystemMetricsPrefix

          public static final String getSystemMetricsPrefix()

    - #### getGlobalSystemConfig

          public static ModifiableConfiguration getGlobalSystemConfig(Backend backend)

    - #### isReadOnly

          public boolean isReadOnly()

    - #### hasFlushIDs

          public boolean hasFlushIDs()

    - #### hasForceIndexUsage

          public boolean hasForceIndexUsage()

    - #### getTxVertexCacheSize

          public int getTxVertexCacheSize()

    - #### getTxDirtyVertexSize

          public int getTxDirtyVertexSize()

    - #### isBatchLoading

          public boolean isBatchLoading()

    - #### getUniqueGraphId

          public String getUniqueGraphId()

    - #### getMetricsPrefix

          public String getMetricsPrefix()

    - #### getDefaultSchemaMaker

          public DefaultSchemaMaker getDefaultSchemaMaker()

    - #### allowVertexIdSetting

          public boolean allowVertexIdSetting()

    - #### getMaxCommitTime

          public Duration getMaxCommitTime()

    - #### getMaxWriteTime

          public Duration getMaxWriteTime()

    - #### hasPropertyPrefetching

          public boolean hasPropertyPrefetching()

    - #### getUnknownIndexKeyName

          public String getUnknownIndexKeyName()

    - #### hasLogTransactions

          public boolean hasLogTransactions()

    - #### getTimestampProvider

          public TimestampProvider getTimestampProvider()

    - #### getRegisteredAttributeClasses

          public static List<RegisteredAttributeClass<?>> getRegisteredAttributeClasses(Configuration configuration)

    - #### getIDAssigner

          public VertexIDAssigner getIDAssigner(Backend backend)

    - #### getBackendDescription

          public String getBackendDescription()

    - #### getBackend

          public Backend getBackend()

    - #### getStoreFeatures

          public StoreFeatures getStoreFeatures()

    - #### getSerializer

          public Serializer getSerializer()

    - #### getSerializer

          public static Serializer getSerializer(Configuration configuration)

    - #### hasSerializeAll

          public boolean hasSerializeAll()

    - #### getTypeCache

          public SchemaCache getTypeCache(SchemaCache.StoreRetrieval retriever)

    - #### getHomeDirectory

          public File getHomeDirectory()

      Returns the home directory for the graph database initialized in this configuration
      Returns:
        Home directory for this graph database configuration

    - #### getHomePath

          public String getHomePath()

      Returns the home directory path for the graph database initialized in this configuration
      Returns:
        Home directory path for this graph database configuration

    - #### getPath

          public static String getPath(File dir)

Copyright © 2012–2014. All rights reserved.