---
title: "Configuration options"
description: "Comprehensive list of configuration options for Aerospike Graph Service (AGS) clients, services, and graph setups."
---

# Configuration options

> For the complete documentation index see: [llms.txt](https://aerospike.com/docs/llms.txt)
> 
> All documentation pages available in markdown.

This page contains a complete list of configuration options for Aerospike Graph Service (AGS). For help with specifying configuration options for an AGS deployment, see [Configuring](https://aerospike.com/docs/graph/manage/configure).

Configuration options are organized into the following groups:

-   [Options in the `aerospike.client.*`](#aerospikeclient-options) group specify details of AGS’s Aerospike client configuration and network setup.
    
-   [Options in the `aerospike.graph-service.*`](#aerospikegraph-service-options) group specify details of your AGS configuration.
    
-   [Options in the `aerospike.graph.*`](#aerospikegraph-options) group specify details of your graph database setup.
    
-   [Options in the `aerospike.graphloader.*`](#aerospikegraphloader-options) group configure the [Aerospike Bulk Loader](https://aerospike.com/docs/graph/load/overview).
    
-   [Options in the `<name>.aerospike.graph.*`](#nameaerospikegraph-options) group are for a specified graph in a [multi-tenant](https://aerospike.com/docs/graph/manage/multi-tenant) AGS server. Replace `<name>` with the name of the graph to configure. To specify a list of graphs in a multi-tenant AGS server, use the [`aerospike.graph-service.graphs`](#aerospikegraph-servicegraphs) option.
    

The following configuration options are available:

## aerospike.client.\* options

These options specify details of AGS’s Aerospike client configuration and network setup.

#### `aerospike.client.auth.mode`

**Default:** `INTERNAL`  
**Allowable values:** `EXTERNAL`, `EXTERNAL_INSECURE`, `INTERNAL`, `PKI`  
`EXTERNAL`: Use external authentication (like LDAP) when username/password are defined.  
`EXTERNAL_INSECURE`: Use external authentication (like LDAP) when username/password are defined.  
`INTERNAL`: Use internal authentication when username/password are defined.  
`PKI`: Authentication and authorization based on a certificate.

---

#### `aerospike.client.batch.read.size`

**Default:** 0  
**Allowable values:** Positive integers  
Flat maximum records per batch across the whole cluster. A value of 0 disables the flat global cap and allows per-node batch sizing to determine the batch size. If set to a non-zero value, this overrides `aerospike.client.batch.read.size.per-node` and enforces a flat cap regardless of cluster size. The flat cap is a fixed cluster-wide limit that does not scale with the number of Aerospike nodes. You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.client.batch.read.size.per-node`

**Default:** 20  
**Allowable values:** Positive integers  
Maximum records per batch, measured per Aerospike node. The batch size across all nodes is `aerospike.client.batch.read.size.per-node × number of Aerospike nodes`. This setting is ignored if `aerospike.client.batch.read.size` is non-zero. You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.client.batch-threshold.per-node`

**Default:** 1  
**Allowable values:** Positive integers  
Toggle between parallel single record reads and batch reading, measured per Aerospike node. The threshold across all nodes is `aerospike.client.batch-threshold.per-node × number of Aerospike nodes`. If the total records to read is less than or equal to this threshold, AGS uses parallel single record reads; if it is greater, AGS uses batch reading. You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.client.clientPolicy.maxConnsPerNode`

**Default:** `2 * ((2 * gremlinPool) + 14)`, where `gremlinPool` = value of [`aerospike.graph-service.gremlinPool`](#aerospikegraph-servicegremlinpool)  
**Allowable values:** Positive integers.  
The maximum number of connections per Aerospike node that AGS can use for executing concurrent queries.

---

#### `aerospike.client.clientPolicy.maxErrorRate`

**Default:** `100`  
**Allowable values:** integer  
For index queries: number of errors per second (such as TCP resets or timeouts and other network errors) before the client stops trying to connect for the remainder of that 1 second. If `maxErrorRate` is 0, there is no error limit and the exception will never be thrown. Pass through option for the Aerospike Java Client. See [API documentation](https://javadoc.io/doc/com.aerospike/aerospike-client/5.1.2/com/aerospike/client/policy/ClientPolicy.html#maxErrorRate).

---

#### `aerospike.client.clientPolicy.minConnsPerNode`

**Default:** `(2 * gremlinPool) + 14`, where `gremlinPool` = value of [`aerospike.graph-service.gremlinPool`](#aerospikegraph-servicegremlinpool)  
**Allowable values:** Positive integers from 1 to `maxConnsPerNode`.  
The minimum number of connections per Aerospike node that AGS can use for executing concurrent queries. If connections are unused and `minConnsPerNode` is less than `maxConnsPerNode`, the client connecting to Aerospike may remove the unused connections.

---

#### `aerospike.client.policy.maxRetries`

**Default:** 2 A value of 2 implies that there will be 3 total attempts per read operation in case of a timeout. Read operations: 2 (initial attempt + 2 retries = 3 total attempts)  
Write, query, and scan operations: 0 (no retries)

**Allowable values:** Positive integers.

Maximum number of retries before aborting a read, write, query, or scan operation. This is a pass-through option for the Aerospike Java Client and follows the client’s [retry policy behavior](https://aerospike.com/docs/database/learn/policies/#max-retries). You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.client.cluster.name`

**Default:** none  
**Allowable values:** String values.  
Name of a running Aerospike Database cluster. If set, this value validates that the cluster which AGS connects to matches the configuration.

---

#### `aerospike.client.compress`

**Default:** `false`  
**Allowable values:** `true`, `false`

Enables or disables wire-level [compression](https://aerospike.com/docs/database/manage/namespace/storage/compression/#client-side-compression) between AGS and the Aerospike database.

When set to `true`, AGS applies compression to data exchanged during reads (primary index, query, and secondary index) and writes. This reduces the volume of data sent over the network.

---

#### `aerospike.client.host`

**Default:** `localhost:3000`  
**Allowable values:** Any string that follows `<host>:<port>` format.  
Accessible address of one or more Aerospike seed nodes, specified as `<host>:<port>` in a comma-separated list.

---

#### `aerospike.client.namespace`

**Default:** `test`  
**Allowable values:** String values. Must match an existing Aerospike namespace.  
Namespace to use for storage of graph data.

::: note
This namespace must already exist on the Aerospike database cluster before starting AGS.
:::

---

#### `aerospike.client.password`

**Default:** none  
**Allowable values:** String values. Must match Aerospike password for specified user.  
Password to use when connecting to the Aerospike cluster if login security is enabled.

---

#### `aerospike.client.policy.read.socketTimeout`

**Default:** 150  
**Allowable values:** Positive integers.  
For single record and batch record reads: Time in milliseconds before a socket timeout occurs. Pass through option for the Aerospike Java Client. You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.client.policy.scan.socketTimeout`

**Default:** 30000  
**Allowable values:** Positive integers.  
For scan queries: time in milliseconds before a socket timeout occurs. Pass through option for the Aerospike Java Client. You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.client.policy.query.socketTimeout`

**Default:** 30000  
**Allowable values:** Positive integers.  
For query operations: time in milliseconds before a socket timeout occurs. Pass through option for the Aerospike Java Client. You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.client.policy.write.socketTimeout`

**Default:** 500  
**Allowable values:** Positive integers.  
For record writes: Time in milliseconds before a socket timeout occurs. Pass through option for the Aerospike Java Client. You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.client.policy.read.totalTimeout`

**Default:** 450  
**Allowable values:** Positive integers.  
For single record and batch record reads: Total time in milliseconds before a timeout occurs. Pass through option for the Aerospike Java Client. You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.client.policy.scan.totalTimeout`

**Default:** 0 (defaults to `aerospike.client.policy.scan.socketTimeout`)  
**Allowable values:** Positive integers.  
For scan queries: total time in milliseconds before a timeout occurs. Pass through option for the Aerospike Java Client. You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.client.policy.query.totalTimeout`

**Default:** 0 (defaults to `aerospike.client.policy.query.socketTimeout`)  
**Allowable values:** Positive integers.  
For query operations: total time in milliseconds before a timeout occurs. Pass through option for the Aerospike Java Client. You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.client.policy.write.sleepBetweenRetry`

**Default:** 500  
**Allowable values:** Positive integers.  
Time in milliseconds to wait between retries of failed write operations. Pass through option for the Aerospike Java Client. You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.client.policy.read.sleepBetweenRetry`

**Default:** 0  
**Allowable values:** Positive integers.  
Time in milliseconds to wait between retries of failed read operations. Applies to scans, indexes, single record, and batch record reads. Pass through option for the Aerospike Java Client. You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.client.policy.query.connectTimeout`

**Default:** `0`  
**Allowable values:** integer  
For query operations: time interval to allow a client connection to try to connect before timing out. Set to 0 for no timeout limit. Pass through option for the Aerospike Java Client. See [API documentation](https://javadoc.io/doc/com.aerospike/aerospike-client/latest/com/aerospike/client/policy/Policy.html#connectTimeout). You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.graph.tx.enabled`

**Default:** `false`  
**Allowable values:** `true`, `false`  
Set to `true` to enable TinkerPop transactions. Requires [strong consistency](https://aerospike.com/docs/database/manage/namespace/consistency) on the Aerospike namespace and SC enabled for the target graph in AGS. Transactions are explicit in client code.

---

#### `aerospike.graph.tx.timeout`

**Default:** `0`  
**Allowable values:** Integer values  
Optional timeout in seconds for TinkerPop transactions. A value of `0` uses the server [`mrt-duration`](https://aerospike.com/docs/database/reference/config#namespace__mrt-duration) setting. The default [`mrt-duration`](https://aerospike.com/docs/database/reference/config#namespace__mrt-duration) is 10 seconds.

---

#### `aerospike.client.policy.query.timeoutDelay`

**Default:** `0`  
**Allowable values:** integer  
For query operations: time interval to wait after a client times out before returning the connection to the connection pool. Set to 0 for no timeout delay limit. Pass through option for the Aerospike Java Client. See [API documentation](https://javadoc.io/doc/com.aerospike/aerospike-client/latest/com/aerospike/client/policy/Policy.html#timeoutDelay). You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.client.policy.scan.connectTimeout`

**Default:** `0`  
**Allowable values:** integer  
For scan queries: time interval to allow a client connection to try to connect before timing out. Set to 0 for no timeout limit. Pass through option for the Aerospike Java Client. See [API documentation](https://javadoc.io/doc/com.aerospike/aerospike-client/latest/com/aerospike/client/policy/Policy.html#connectTimeout). You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.client.policy.scan.timeoutDelay`

**Default:** `0`  
**Allowable values:** integer  
For scan queries: time interval to wait after a client times out before returning the connection to the connection pool. Set to 0 for no timeout delay limit. Pass through option for the Aerospike Java Client. See [API documentation](https://javadoc.io/doc/com.aerospike/aerospike-client/latest/com/aerospike/client/policy/Policy.html#timeoutDelay). You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.client.port`

**Default:** `3000`  
**Allowable values:** Positive integers.  
Port number of an Aerospike seed node.

---

#### `aerospike.client.rack.aware`

**Default:** `false`  
**Allowable values:** `true`, `false`  
Set to `true` to enable [rack awareness](https://aerospike.com/docs/database/learn/architecture/clustering/rack-aware) for the AGS Aerospike client. When enabled, AGS prefers reading from Aerospike nodes in the rack specified by [`aerospike.client.rack.id`](#aerospikeclientrackid) or [`aerospike.client.rack.ids`](#aerospikeclientrackids).

---

#### `aerospike.client.rack.id`

**Default:** `0`  
**Allowable values:** Integer values.  
Rack ID assigned to this AGS instance. Only applies when [`aerospike.client.rack.aware`](#aerospikeclientrackaware) is set to `true`. If [`aerospike.client.rack.ids`](#aerospikeclientrackids) is set, this option is ignored.

---

#### `aerospike.client.rack.ids`

**Default:** none (empty)  
**Allowable values:** Comma-separated list of integers.  
Ordered list of rack IDs in order of preference. AGS selects nodes from the first rack in the list. If the first rack contains no nodes, AGS tries the next rack, continuing through the list. Only applies when [`aerospike.client.rack.aware`](#aerospikeclientrackaware) is set to `true`. If this option is set, [`aerospike.client.rack.id`](#aerospikeclientrackid) is ignored.

---

#### `aerospike.client.services.alternate`

**Default:** `false`  
**Allowable values:** `true`, `false`  
AGS uses `services-alternate` instead of `services` in its info request during cluster tending. `services-alternate` returns server-configured external IP addresses that AGS clients use to talk to nodes. `services-alternate` can be used in place of providing a client `ipMap`.

---

#### `aerospike.client.tls`

**Default:** `false`  
**Allowable values:** `true`, `false`  
Enable TLS.

---

#### `aerospike.client.user`

**Default:** none  
**Allowable values:** String values. Must match a user configured for the Aerospike database instance.  
Username to use when connecting to the Aerospike cluster if login security is enabled.

---

## aerospike.graph-service.\* options

These options specify details of your AGS configuration.

#### `aerospike.graph-service.auth.jwt.algorithm`

**Default:** `HMAC256`  
**Allowable values:** `HMAC256`, `HMAC384`, `HMAC512`  
Hashing algorithm to use with [role-based access control](https://aerospike.com/docs/graph/manage/security/rbac-graph) for AGS.

::: note
The `HMAC256` algorithm is representative as the token value `HS256`.
:::

---

#### `aerospike.graph-service.auth.jwt.issuer`

**Default:** none  
**Allowable values:** Your organization or a third-party authentication service.  
The issuer of Java web tokens (JWT) for use with [role-based access control](https://aerospike.com/docs/graph/manage/security/rbac-graph) for AGS.

---

#### `aerospike.graph-service.auth.jwt.secret`

**Default:** none  
**Allowable values:** String values.  
Secret token to use with [role-based access control](https://aerospike.com/docs/graph/manage/security/rbac-graph) for AGS.

---

#### `aerospike.graph-service.evaluationTimeout`

**Default:** `10000`  
**Allowable values:** Positive integers.  
Time in milliseconds to wait for a request (script or bytecode) to complete execution.

---

#### `aerospike.graph-service.gremlinPool`

**Default:** The number of available processors x 4  
**Allowable values:** Positive integers.  
Size of the Gremlin thread pool. This pool handles Gremlin script execution and other related long-running processing jobs.

---

#### `aerospike.graph-service.heap.max`

**Default:** 80% of available system memory  
**Allowable values:** Integer followed by unit (`g` for gigabytes or `m` for megabytes)  
Maximum amount of memory to allocate to the graph service. Examples: `8192m`, `4g`

---

#### `aerospike.graph-service.heap.min`

**Default:** none  
**Allowable values:** Integer followed by unit (`g` for gigabytes or `m` for megabytes)  
Minimum amount of memory to allocate to the graph service.

---

#### `aerospike.graph-service.idleConnectionTimeout`

**Default:** `0`, indicating that feature is turned off.  
**Allowable values:** Positive integers.  
Time in milliseconds that the server allows a channel to receive no requests from a client before it automatically closes. If enabled, the value provided must exceed the amount of time given to the configuration option `aerospike.graph-service.keepAliveInterval`.

::: note
This value is given in milliseconds, but it resolves to second precision.
:::

---

#### `aerospike.graph-service.keepAliveInterval`

**Default:** `0`, indicating that feature is turned off.  
**Allowable values:** Positive integers.  
Time in milliseconds that the server allows a channel to send no responses to a client before it sends a “ping” to see if the channel is still present. If it is present, the client should respond with a “pong” which resets the `aerospike.graph-service.idleConnectionTimeout` and keeps the channel open. If enabled, the value assigned to this option must be smaller than the value provided to the option `aerospike.graph-service.idleConnectionTimeout`.

::: note
This value is given in milliseconds, but it resolves to second precision.
:::

---

#### `aerospike.graph-service.graphs`

**Default:** none  
**Allowable values:** String values Comma-separated list of graph names for [multi-tenant functionality](https://aerospike.com/docs/graph/manage/multi-tenant). Graph names must contain alphanumeric values, with no special characters except `-` and `_`.

---

#### `aerospike.graph-service.metrics.consoleReporter.enabled`

**Default:** `true`  
**Allowable values:** `true`, `false`

Controls whether metrics are printed to the console.

---

#### `aerospike.graph-service.metrics.consoleReporter.interval`

**Default:** `180000`  
**Allowable values:** Positive integers

Specifies how frequently AGS prints internal performance metrics directly to standard console output, in a plain-text format, in milliseconds.

For example, setting the interval to `30000` prints metrics every 30 seconds.

---

#### `aerospike.graph-service.port`

**Default:** `8182`  
**Allowable values:** Positive integers in the allowable port range.  
Port to bind the AGS server to. Drivers connecting to AGS must use this port.

---

#### `aerospike.graph-service.threadPoolWorker`

**Default:** CPU count / 2  
**Allowable values:** Positive integers.  
This value must not exceed 2 \* number of cores. A worker thread performs non-blocking read and write operations for one or more channels in a non-blocking mode.

---

## aerospike.graph.\* options

These options specify details of your graph database setup.

---

#### `aerospike.graph.audit.log.enabled`

**Default:** `false`  
**Allowable values:** `true`, `false`  
Create a log of user actions on the AGS instance. Logged actions include:

-   Write operations
-   Delete operations
-   Call step executions

Each log line records the user and the action performed.

Before enabling this option, you must enable [role-based access control](https://aerospike.com/docs/graph/manage/security/rbac-graph) for the AGS instance.

---

#### `aerospike.graph.cache.mode`

**Default:** `TRANSACTIONAL`  
**Allowable values:** `TRANSACTIONAL`, `GLOBAL`  
Sets the [cache mode](https://aerospike.com/docs/graph/manage/cache#cache-modes) for the graph instance. `TRANSACTIONAL` uses per-request caches that are reset after each traversal. `GLOBAL` uses process-shared caches that persist across traversals within a graph instance. You can change this at runtime through the [cache admin service](https://aerospike.com/docs/graph/manage/cache#set-cache-mode). Changes persist across restart.

---

#### `aerospike.graph.cache.weight`

**Default:** `1000000` (`20000000` when cache mode is `GLOBAL`)  
**Allowable values:** Integer >= 1  
Sets the [cache weight](https://aerospike.com/docs/graph/manage/cache#configure-cache-weight) budget in weight units (not raw bytes). For record caches, one weight unit is approximately 200 bytes. You can change this at runtime through the [cache admin service](https://aerospike.com/docs/graph/manage/cache#set-cache-mode). Changes persist across restart.

---

#### `aerospike.graph.clear-on-version-incompatibility.enabled`

**Default:** `false`  
**Allowable values:** `true`, `false`

Controls how AGS handles on-disk data from a previous version of Aerospike Graph.

If set to `true`, and the on-disk data model version does not match the version of AGS starting up, AGS automatically deletes all existing data, allowing the system to start cleanly with the new data model.

If set to `false`, AGS terminates startup and displays the following error when it detects incompatible on-disk data:

```txt
The on-disk data model version '2.6.0' is not compatible with the AGS version '3.0.0' being used. To fix this, either use Aerospike Graph '2.6.0', use a new namespace, or start with flag `aerospike.graph.clear-on-version-incompatibility.enabled` which will delete the old data and allow using the new model.
```

The error message includes guidance to either:

-   Use a compatible version of Aerospike Graph,
-   Start with a new namespace, or
-   Re-run with this flag enabled to clear the data.

---

#### `aerospike.graph.config.update.enabled`

**Default:** `false`  
**Allowable values:** `true`, `false`  
Controls whether AGS instances automatically refresh configuration changes applied through the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration). When set to `true`, each instance periodically checks graph metadata for updated configuration values and applies them without a restart. When set to `false` (default), you must restart instances to apply configuration changes.

---

#### `aerospike.graph.config.update.frequency`

**Default:** `5000`  
**Allowable values:** Positive integers.  
Interval in milliseconds at which AGS checks graph metadata for configuration changes applied through the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration). Only applies when [`aerospike.graph.config.update.enabled`](#aerospikegraphconfigupdateenabled) is `true`.

---

#### `aerospike.graph.mrt.enabled`

**Default:** `false`  
**Allowable values:** `true`, `false`  
Set to `true` to enable [transactions](https://aerospike.com/docs/graph/develop/query/transactions). Requires [strong consistency](https://aerospike.com/docs/database/manage/namespace/consistency) on the Aerospike namespace and SC enabled for the target graph in AGS. Can be enabled independently of TinkerPop transactions.

---

#### `aerospike.graph.mrt.timeout`

**Default:** `0`  
**Allowable values:** Integer values Optional timeout in seconds for [transactions](https://aerospike.com/docs/graph/develop/query/transactions). A value of `0` uses the server [`mrt-duration`](https://aerospike.com/docs/database/reference/config#namespace__mrt-duration) setting. The default [`mrt-duration`](https://aerospike.com/docs/database/reference/config#namespace__mrt-duration) is 10 seconds.

---

#### `aerospike.graph.parallelize`

**Default:** none  
**Allowable values:** Positive integer values  
Optional query threading parallelize factor. See [Query Threading](https://aerospike.com/docs/graph/develop/query/query-threading/) for details.

---

#### `aerospike.graph.phat.edge.size`

**Default:** 10  
**Allowable values:** Positive integers.

Defines how many edges are grouped together into a single record within the graph storage layer. This setting directly impacts how many total edge records are created in Aerospike.

Setting this to a higher value means fewer records overall, which can reduce memory (Aerospike primary index) usage and lower RAM overhead. However, it also means each record is larger, which can increase network and disk usage when edges are read.

This value must be set when AGS first connects and cannot be changed afterward. If modified later, AGS will return an error.

---

#### `aerospike.graph.query-tracing.opentelemetry-host`

**Default:** localhost  
**Allowable values:** IP addresses Host IP for query tracing with Zipkin. On Linux systems, you can use `172.17.0.1` for adjacent Docker containers.

---

#### `aerospike.graph.query-tracing.opentelemetry-port`

**Default:** 9411  
**Allowable values:** Positive integer values Port number for query tracing with Zipkin.

---

#### `aerospike.graph.query-tracing.sampling-percentage`

**Default:** 100  
**Allowable values:** Integer values 1-100  
Percentage from 1-100 of queries that exceed the slow query tracing threshold (`aerospike.graph.query-tracing.threshold-ms`) that will be traced.

---

#### `aerospike.graph.query-tracing.threshold-ms`

**Default:** -1 (disabled)  
**Allowable values:** Positive integer values  
Threshold in ms above which queries are traced.

---

#### `aerospike.graph.scan.enabled`

**Default:** `true`  
**Allowable values:** `true`, `false`  
Controls whether traversals can trigger full graph scans. When set to `false`, any traversal that would trigger a scan throws an exception. Use this to verify that your traversals use [secondary indexes](https://aerospike.com/docs/graph/develop/query/indexing/) and do not perform unintended scans. You can override this setting per traversal with the [`g.with()` step](https://aerospike.com/docs/graph/develop/query/indexing/#override-per-traversal).

---

#### `aerospike.graph.script-logging.redact-literals`

**Default:** `false`  
**Allowable values:** `true`, `false`  
When enabled, sensitive or literal data within queries (such as IDs, labels, etc) are redacted from the logs for security and privacy reasons.

---

#### `aerospike.graph.tx.enabled`

**Default:** `false`  
**Allowable values:** `true`, `false`  
Set to `true` to enable TinkerPop transactions. Requires [strong consistency](https://aerospike.com/docs/database/manage/namespace/consistency) on the Aerospike namespace and SC enabled for the target graph in AGS. Transactions are explicit in client code.

---

#### `aerospike.graph.tx.timeout`

**Default:** `0`  
**Allowable values:** Integer values  
Optional timeout in seconds for TinkerPop transactions. A value of `0` uses the server [`mrt-duration`](https://aerospike.com/docs/database/reference/config#namespace__mrt-duration) setting. The default [`mrt-duration`](https://aerospike.com/docs/database/reference/config#namespace__mrt-duration) is 10 seconds.

---

#### `aerospike.client.policy.query.connectTimeout`

**Default:** `0`  
**Allowable values:** integer  
For query operations: time interval to allow a client connection to try to connect before timing out. Set to 0 for no timeout limit. Pass through option for the Aerospike Java Client. See [API documentation](https://javadoc.io/doc/com.aerospike/aerospike-client/latest/com/aerospike/client/policy/Policy.html#connectTimeout). You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.client.policy.scan.connectTimeout`

**Default:** `0`  
**Allowable values:** integer  
For scan queries: time interval to allow a client connection to try to connect before timing out. Set to 0 for no timeout limit. Pass through option for the Aerospike Java Client. See [API documentation](https://javadoc.io/doc/com.aerospike/aerospike-client/latest/com/aerospike/client/policy/Policy.html#connectTimeout). You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.client.clientPolicy.maxErrorRate`

**Default:** `100`  
**Allowable values:** integer  
For index queries: number of errors per second (such as TCP resets or timeouts and other network errors) before the client stops trying to connect for the remainder of that 1 second. If `maxErrorRate` is 0, there is no error limit and the exception will never be thrown. Pass through option for the Aerospike Java Client. See [API documentation](https://javadoc.io/doc/com.aerospike/aerospike-client/5.1.2/com/aerospike/client/policy/ClientPolicy.html#maxErrorRate).

---

#### `aerospike.client.policy.query.timeoutDelay`

**Default:** `0`  
**Allowable values:** integer  
For query operations: time interval to wait after a client times out before returning the connection to the connection pool. Set to 0 for no timeout delay limit. Pass through option for the Aerospike Java Client. See [API documentation](https://javadoc.io/doc/com.aerospike/aerospike-client/latest/com/aerospike/client/policy/Policy.html#timeoutDelay). You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.client.policy.scan.timeoutDelay`

**Default:** `0`  
**Allowable values:** integer  
For scan queries: time interval to wait after a client times out before returning the connection to the connection pool. Set to 0 for no timeout delay limit. Pass through option for the Aerospike Java Client. See [API documentation](https://javadoc.io/doc/com.aerospike/aerospike-client/latest/com/aerospike/client/policy/Policy.html#timeoutDelay). You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.graph.http.port`

**Default:** `9090`  
**Allowable values:** 0 to 65353 Port on which to open the HTTP server for requests. The HTTP server includes Prometheus and the health check.

---

#### `aerospike.graph.index.vertex.compound`

**Default:** none  
**Allowable values:** Any string that follows the [expression index predicate syntax](https://aerospike.com/docs/graph/develop/query/expression-indexes/#build-a-predicate).  
One or more [expression indexes](https://aerospike.com/docs/graph/develop/query/expression-indexes/) to define at startup. An expression index speeds up traversals that filter vertices by two or more criteria. Separate predicates within a single index with `,` and separate multiple indexes with `;`. See [Applies to](https://aerospike.com/docs/graph/develop/query/expression-indexes/#applies-to) for version requirements.

---

#### `aerospike.graph.index.vertex.label.enabled`

**Default:** `false`  
**Allowable values:** `true`, `false`  
Enable indexing of vertex labels.

---

#### `aerospike.graph.index.vertex.properties`

**Default:** none  
**Allowable values:** Any string.  
Comma-delimited list of vertex properties to create an index on.

---

#### `aerospike.graph.log.level`

**Default:** `INFO`  
**Allowable values:** `OFF`, `ERROR`, `WARN`, `INFO`, `DEBUG`, `TRACE`, `ALL`  
Log level for the AGS instance. Allowable values are in ascending order of verbosity.

---

#### `aerospike.graph.healthcheck.path`

**Default:** `/healthcheck`  
**Allowable values:** Any URI-compatible string. URI path of the health check server used by Kubernetes.

---

#### `aerospike.graph.pagination.page.queue.size`

**Default:** `10`  
**Allowable values:** Positive integers.  
Maximum number of pages to queue up. If this number of pages is queued up and not being consumed, no more pages will be read until one is consumed. You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.graph.pagination.page.size`

**Default:** `0`  
**Allowable values:** Positive integers.  
Flat maximum results per page across the whole cluster. A value of 0 disables the flat global page size and allows per-node pagination to determine results per page. If set to a non-zero value, this overrides `aerospike.graph.pagination.page.size.per-node`. The flat page size cap is a fixed cluster-wide limit that does not scale with the number of Aerospike nodes. You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.graph.pagination.page.size.per-node`

**Default:** `200`  
**Allowable values:** Positive integers.  
Maximum results per page, measured per Aerospike node. The page size across all nodes is `aerospike.graph.pagination.page.size.per-node × number of Aerospike nodes`. This setting is ignored if `aerospike.graph.pagination.page.size` is non-zero. You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.graph.pagination.shutdown.wait`

**Default:** `0`  
**Allowable values:** Positive integers.  
If set to a non-zero value, the graph blocks query execution up to the amount of time specified (in ms) to allow the background reader threads to exit. If the background thread has not exited after the time specified a force shutdown signal is sent.

If set to zero, the graph sends a shutdown signal and does not block execution. You can update this option at runtime with the [`set-config` call step](https://aerospike.com/docs/graph/reference/graph-call-steps/#set-runtime-configuration).

---

#### `aerospike.graph.prometheus.path`

**Default:** `/metrics`  
**Allowable values:** Any URI-compatible string. URI path of the Prometheus web interface.

---

#### `aerospike.graph.strategy.cached.adjacent.id.enabled`

**Default:** `false`  
**Allowable values:** `true`, `false`  
Enabling this option provides extremely fast performance of `in/out().id()` steps, but slightly reduces the performance of general `in/out()` steps.

::: note
Before using this option, contact Aerospike support to properly configure the edge cache size for your data model.
:::

You can set this option on an AGS instance that has not yet connected to an Aerospike database. After setting this option, it cannot be changed on an existing dataset.

To update an existing AGS instance to use this option, use the following procedure.

1.  Execute the following Gremlin command to remove all data from the graph:
    
    ```txt
    g.V().drop().iterate()
    ```
    
2.  Set the `aerospike.graph.strategy.cached.adjacent.id.enabled` option to `true` in your `config.properties` file and restart the AGS instance.
    
3.  Reload your data to the graph.
    

---

#### `aerospike.graph.summary.ticker.enabled`

**Default:** `true`  
**Allowable values:** `true`, `false`  
Enable AGS summary metadata ticker.

---

#### `aerospike.graph.ttl.enabled`

**Default:** `false`  
**Allowable values:** `true`, `false`  
Enable TTL (time to live) for edges and vertices.

---

## aerospike.graphloader.\* options

These options configure the [Aerospike Bulk Loader](https://aerospike.com/docs/graph/load/overview).

#### `aerospike.graphloader.allowed-bad-edges-count`

**Default:** none (unlimited)  
**Allowable values:** Positive integers.  
Allowable number of bulk loader errors involving edges that refer to missing vertex IDs. Set to 0 for no allowable errors.

---

#### `aerospike.graphloader.allowed-bad-entry-count`

**Default:** none (unlimited)  
**Allowable values:** Positive integers.  
Allowable number of bulk loader errors involving vertices or edges that have incorrectly typed data. Set to 0 for no allowable errors.

---

#### `aerospike.graphloader.allowed-duplicate-vertex-id-count`

**Default:** none (unlimited)  
**Allowable values:** Positive integers.  
Allowable number of bulk loader errors involving vertices that have the same ID and label in the input dataset. Set to 0 for no allowable errors.

---

#### `aerospike.graphloader.edges`

**Default:** none  
**Allowable values:** String values. The path to the directory or cloud storage location where CSV files containing edge data are stored.

---

#### `aerospike.graphloader.vertices`

**Default:** none  
**Allowable values:** String values. The path to the directory or cloud storage location where CSV files containing vertex data are stored.

---

#### `aerospike.graphloader.sampling-percentage`

**Default:** 0  
**Allowable values:** Floating-point values between 0.1 and 100.  
Specifies a percentage of the input data to be sampled to verify that the bulk loading job was successful.

---

#### `aerospike.graphloader.remote-passkey`

**Default:** none  
**Allowable values:** String values.  
For AWS: your `AWS_SECRET_ACCESS_KEY_ID` value.  
For GCS: your `PRIVATE_KEY` value.

---

#### `aerospike.graphloader.remote-user`

**Default:** none  
**Allowable values:** String values.  
For AWS: your `AWS_ACCESS_KEY_ID` value.  
For GCS: your `PRIVATE_KEY_ID` value.

---

#### `aerospike.graphloader.gcs-email`

**Default:** none  
**Allowable values:** String values.  
GCS only. Populate with your GCS `CLIENT_EMAIL` value.

---

#### `aerospike.graphloader.supernode.sampling-percentage`

**Default:** none  
**Allowable values:** Floating-point values between 0 and 1.0.  
Percentage of dataset to sample for supernode calculation. See [supernodes](https://aerospike.com/docs/graph/develop/query/supernodes) for details.

---

## <name>.aerospike.graph.\* options

These options are for a specified graph in a [multi-tenant](https://aerospike.com/docs/graph/manage/multi-tenant) AGS server. Replace `<name>` with the name of the graph to configure. To specify a list of graphs in a multi-tenant AGS server, use the [`aerospike.graph-service.graphs`](#aerospikegraph-servicegraphs) option.

---

#### **Option:** `<name>.aerospike.graph.traversal`

**Default:** `g<name>`  
**Allowable values:** Alphanumeric values, no special characters except `-` and `_`.  
User-supplied traversal name of a [multi-tenant graph](https://aerospike.com/docs/graph/manage/multi-tenant). A multi-tenant graph’s traversal name must be different from its graph name and must not begin with a number.