---
title: "Aerospike Graph Service Release Notes 3.1.0"
description: "Aerospike Graph Service 3.1.0 release notes: TinkerPop transactions, index improvements, and performance boosts."
---

# Aerospike Graph Service Release Notes 3.1.0

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

October 29, 2025  |  **[Download](https://hub.docker.com/r/aerospike/aerospike-graph-service/tags)**

## New in this version

Aerospike Graph Service 3.1.0 adds transaction support for Gremlin workloads, improves strategy application speed and lowers tail latency, refines operational controls, and improves visibility into supernode-heavy traversals.

### New features

-   **TinkerPop transaction support** - Added support for [TinkerPop transactions](https://aerospike.com/docs/graph/develop/query/transactions/#how-to-use-tinkerpop-transactions). \[GRAPH-1652\]
-   **Separate string and numeric indexes** - Added support for creating [separate string and numeric vertex property indexes](https://aerospike.com/docs/graph/develop/query/indexing/). \[GRAPH-1671\]

### Performance enhancements

-   **Lower tail latency** - Reduced the [parallel reading threshold](https://aerospike.com/docs/graph/reference/config/#aerospikeclientbatch-thresholdper-node) from 4 records per node to 1 record per node. \[GRAPH-1678\]
-   **Faster strategy application** - Improved strategy application speed by approximately 5 times, reducing execution time for low-latency queries by up to 20 percent. \[GRAPH-1644\]
-   **Known-vertex edge optimization** - Added an optimization for obtaining edges between known vertices, for example:  
    `g.V(id1).outE().where(__.inV().hasId(id2))`. \[GRAPH-1588\]
-   **mergeV batching** - `mergeV` now batches writes for all properties in `match` and `create` options to improve performance when many properties are present. \[GRAPH-1675\]
-   **Faster mergeE execution** - Greatly improved `mergeE` speed by reducing distributed lock overhead. \[GRAPH-1646\]

### Configuration and operational updates

-   **Batch read and pagination tuning** - Reworked [batch reading](https://aerospike.com/docs/graph/develop/query/query-threading/#batch-vs-single-record-reads) and [pagination configuration](https://aerospike.com/docs/graph/develop/query/query-threading/#pagination-controls). \[GRAPH-1694\]
    -   Introduced [`aerospike.graph.pagination.page.size.per-node`](https://aerospike.com/docs/graph/reference/config/#aerospikegraphpaginationpagesizeper-node).
    -   `aerospike.graph.pagination.page.size` now defaults to `0` (disabled).
    -   Introduced [`aerospike.client.batch.read.size.per-node`](https://aerospike.com/docs/graph/reference/config/#aerospikeclientbatchreadsizeper-node).
    -   `aerospike.client.batch.read.size` now defaults to `0` (disabled).
-   **Query policy naming updates** - Renamed configuration options for query policies. \[GRAPH-1660\]
    -   `aerospike.client.policy.index.totalTimeout` → [`aerospike.client.policy.query.totalTimeout`](https://aerospike.com/docs/graph/reference/config/#aerospikeclientpolicyquerytotaltimeout)
    -   `aerospike.client.policy.index.socketTimeout` → [`aerospike.client.policy.query.socketTimeout`](https://aerospike.com/docs/graph/reference/config/#aerospikeclientpolicyquerysockettimeout)
    -   `aerospike.client.policy.index.connectTimeout` → [`aerospike.client.policy.query.connectTimeout`](https://aerospike.com/docs/graph/reference/config/#aerospikeclientpolicyqueryconnecttimeout)
    -   `aerospike.client.policy.index.timeoutDelay` → [`aerospike.client.policy.query.timeoutDelay`](https://aerospike.com/docs/graph/reference/config/#aerospikeclientpolicyquerytimeoutdelay)
-   **mergeE validation** - Improved error handling and messages when attempting to use `mergeE` while the Aerospike configuration has [`nsup`](https://aerospike.com/docs/database/manage/namespace/retention/#managing-the-namespace-supervisor-nsup) disabled or when TTL behavior without `nsup` is disabled. \[GRAPH-1622\]

### Observability

-   **Admin metadata modes** - Added a `mode` parameter to the [`aerospike.graph.admin.metadata.config`](https://aerospike.com/docs/graph/reference/graph-call-steps/#get-configuration) admin call step. \[GRAPH-1567\]
    -   `full` returns the entire configuration, including defaults.
    -   `delta` returns only values that differ from defaults.
-   **Supernode traversal metric** - Added a metric for supernodes traversed. \[GRAPH-1566\]

### Bug fixes

-   **Mixed element stream fix** - Resolved an issue where a mixed element stream searching for an invalid property key could slow down a query. \[GRAPH-1688\]
-   **mergeE label propagation fix** - Fixed a `mergeE` issue where labels were not propagating, for example:  
    `g.mergeE(...).option(...).as("label_example")`. \[GRAPH-1629\]
-   **TTL log volume adjustments** - Reduced the number of error entries under heavy load when TTL activity increases by adjusting default page sizing. \[GRAPH-1645\]
-   **Upgrade stability improvements** - Fixed an issue during upgrades from 2.x to 3.x that could break secondary index queries. \[GRAPH-1635\]