# Database 8.1.0 Release Notes

August 5, 2025  |  **[Download](https://aerospike.com/download/)**

## New in this version

The 8.1.0 release introduces major improvements to performance, reliability, observability, and developer control — all designed for teams building and operating real-time systems at scale.

### Developer Experience

-   **Expression indexes** – Index only records that match your business filters (ints, strings, blobs, GeoJSON, CDTs), cutting RAM use and speeding queries.

### Performance Enhancements

-   **Vertical scaling on high-core machines** – Unlock up to 6.4X throughput on 128+-core servers with automatic lock-sharding, no tuning required.
-   **Lazy bin loading** – Unpack only the bins your app reads on the read path, reducing CPU work, memory use, and latency spikes on reads from wide records.

### Operational Control

-   **Admin port mode** – Connect [`asadm`](https://aerospike.com/docs/database/tools/asadm/) to a single node so you can retain access even when service connections hit their max (not governed by [proto-fd-max](https://aerospike.com/docs/database/reference/config#service__proto-fd-max)).
-   **Multi-namespace XDR mapping** – Map multiple local namespaces to one remote namespace to support complex data migrations.
-   **Mesh DNS seed logging** – Log resolved IPs at INFO level for DNS-based mesh seeds, improving visibility into cluster discovery.

### Observability

-   **User-agent** – Record client type, library version, and app ID per connection in `asadm` and logs to catch compatibility issues early.
-   **Health-outlier improvements** – Raise outlier thresholds and lower log verbosity to INFO to cut false alarms and reduce log noise.
-   **Principal node election logging** – Tag leadership-change logs with “principal node” or “non-principal node” to track cluster elections clearly.

### Security & Governance

-   **PKI-only authentication enforcement** – Prevent password use for certificate-based users, eliminating password management overhead and ensuring compliance.
-   **Customizable PKI username mapping** – Combine certificate fields (CN, OU, etc.) into unique usernames to avoid collisions and simplify audits.
-   **Zombie record prevention** – Ignore client writes that would shorten a record’s TTL, preventing “zombie” records without extra client logic.

### Deprecated Features

-   **Deprecated feature logging** – Emit metrics and log entries when deprecated server features are used, so you can identify and remediate legacy dependencies. Deprecated features will be removed in the next epic (Aerospike 9).

## Upgrade instructions

You can upgrade directly to Database 8.1.0 from releases 7.1.0.x through 8.0.0.x.

-   For upgrade instructions, see [Upgrade or repair an Aerospike server](https://aerospike.com/docs/database/install/upgrade).
-   For special upgrade instructions, see [Special upgrades and downgrades](https://aerospike.com/docs/database/advanced/special-upgrades).

### Breaking changes

#### New public key

We have a new public key that is used to sign Aerospike Database 8.1.0 and tools 12.0.0. This new key will be used for other packages going forward. For more information, see [Where can I get the public key for verifying Aerospike packages?](https://aerospike.com/docs/database/reference/faq/#where-can-i-get-the-public-key-for-verifying-aerospike-packages).

#### Adding and removing namespaces in XDR

-   When adding a namespace that already ships to the destination, the info command returns the following error:
    
    Example
    
    ```text
    asadm -e 'asinfo -v "set-config:context=xdr;dc=<DC name>;namespace=<namespace>;action=add"'
    
    ERROR:4:invalid state or set-config parameter.
    ```
    
    The logged warning is: `{<namespace>} DC %s namespace already added`
    
-   When removing a namespace that doesn’t actually ship to the destination, the info command returns the following error:
    
    Example
    
    ```text
    asadm -e 'asinfo -v "set-config:context=xdr;dc=<DC name>;namespace=<namespace>;action=remove"'
    
    ERROR:4:invalid state or set-config parameter.
    ```
    
    The logged warning is: `{<namespace>} DC %s namespace already removed`
    

::: note
Prior to Aerospike 8.1.0, neither case returned an error.
:::

#### Removed the info port

We removed Aerospike’s info port, 3003, for sending info commands directly over Telnet. This should not affect any customers who are deployed with [security enabled](https://aerospike.com/docs/database/manage/security/rbac#enable-access-control), which means the info port was already disabled. The new [admin port](https://aerospike.com/docs/database/manage/network/), introduced in Aerospike 8.1.0, now uses port 3003.

Remove the info subcontext of your network configuration from your aerospike.conf.

## Configuration items

| Item | Action | Notes |
| --- | --- | --- |
| [`apply-ttl-reduction`](https://aerospike.com/docs/database/reference/config/#namespace__apply-ttl-reduction) | added | Ignore TTL (time-to-live) reduction due to client writes |
| [`remote-namespace`](https://aerospike.com/docs/database/reference/config/#xdr__remote-namespace) | relaxed | Removed the restriction on `remote-namespace` being unique across namespaces in the same local DC |
| [`address`](https://aerospike.com/docs/database/reference/config#network__address) | deprecated | Defaulting to `any` is deprecated |
| `address` | use in the `network.heartbeat` subcontext is deprecated | Inherits the fabric address |
| `address` | removed use in the `network.info` subcontext | Remove the `network.info` subcontext |
| [`auto-pin`](https://aerospike.com/docs/database/reference/config/#service__auto-pin) | deprecated | `adq` value is deprecated |
| [`group`](https://aerospike.com/docs/database/reference/config/#service__group) | deprecated | Obsolete in systemd |
| [`user`](https://aerospike.com/docs/database/reference/config/#service__user) | deprecated | Obsolete in systemd |
| [`pidfile`](https://aerospike.com/docs/database/reference/config/#service__pidfile) | deprecated | Obsolete in systemd |
| [`proto-fd-idle-ms`](https://aerospike.com/docs/database/reference/config#service__proto-fd-idle-ms) | deprecated |  |
| [`vault-ca`](https://aerospike.com/docs/database/reference/config#service__vault-ca) | deprecated |  |
| [`vault-namespace`](https://aerospike.com/docs/database/reference/config#service__vault-namespace) | deprecated |  |
| [`vault-path`](https://aerospike.com/docs/database/reference/config#service__vault-path) | deprecated |  |
| [`vault-token-file`](https://aerospike.com/docs/database/reference/config#service__vault-token-file) | deprecated |  |
| [`vault-url`](https://aerospike.com/docs/database/reference/config#service__vault-url) | deprecated |  |
| [`mode`](https://aerospike.com/docs/database/reference/config/#network__mode) | `multicast` is deprecated | Switch to `mesh` configuration |

## Metrics items

| Item | Action | Notes |
| --- | --- | --- |
| [`ttl_reductions_ignored`](https://aerospike.com/docs/database/reference/metrics/#namespace__ttl_reductions_ignored) | added | See [`apply-ttl-reduction`](https://aerospike.com/docs/database/reference/config/#namespace__apply-ttl-reduction) |
| [`ttl_reductions_applied`](https://aerospike.com/docs/database/reference/metrics/#namespace__ttl_reductions_applied) | added |  |
| [`deprecated_requests`](https://aerospike.com/docs/database/reference/metrics/#node_stats__deprecated_requests) | added | Increments each time a deprecated feature is used |

## Info commands

| Item | Action | Notes |
| --- | --- | --- |
| [`alumni-clear-alt`](https://aerospike.com/docs/database/reference/info/#alumni-clear-alt) | added |  |
| [`alumni-tls-alt`](https://aerospike.com/docs/database/reference/info/#alumni-tls-alt) | added |  |
| [`user-agents`](https://aerospike.com/docs/database/reference/info/#user-agents) | added | Lists client versions connected to the server |
| `config-get` | deprecated | Use [`get-config`](https://aerospike.com/docs/database/reference/info/#get-config) |
| `config-set` | deprecated | Use [`set-config`](https://aerospike.com/docs/database/reference/info/#set-config) |
| `digests` | deprecated |  |
| `features` | deprecated |  |
| `partitions` | deprecated |  |
| [`mesh`](https://aerospike.com/docs/database/reference/info/#mesh) | deprecated | Use [`get-config`](https://aerospike.com/docs/database/reference/info/#get-config) instead |
| [`mcast`](https://aerospike.com/docs/database/reference/info/#mcast) | deprecated | Use [`get-config`](https://aerospike.com/docs/database/reference/info/#get-config) instead |
| `name` | deprecated | Use `node` instead |
| `objects` | deprecated | Use [`statistics`](https://aerospike.com/docs/database/reference/info/#statistics) instead |
| [`replicas_all`](https://aerospike.com/docs/database/reference/info/#replicas-all) | deprecated | Use [`replicas`](https://aerospike.com/docs/database/reference/info/#replicas) instead |
| [`replicas_master`](https://aerospike.com/docs/database/reference/info/#replicas-master) | deprecated | Use [`replicas`](https://aerospike.com/docs/database/reference/info/#replicas) instead |
| [`service`](https://aerospike.com/docs/database/reference/info/#service) | deprecated | Use [`service-clear-std`](https://aerospike.com/docs/database/reference/info/#service-clear-std) |
| [`services`](https://aerospike.com/docs/database/reference/info/#services) | deprecated | Use [`peers-clear-std`](https://aerospike.com/docs/database/reference/info/#peers-clear-std) |
| [`services-alternate`](https://aerospike.com/docs/database/reference/info/#services-alternate) | deprecated | Use [`peers-clear-alt`](https://aerospike.com/docs/database/reference/info/#peers-clear-alt) |
| [`services-alumni`](https://aerospike.com/docs/database/reference/info/#services-alumni) | deprecated | Use [`alumni-clear-std`](https://aerospike.com/docs/database/reference/info/#alumni-clear-std) |
| [`sindex`](https://aerospike.com/docs/database/reference/info/#sindex) | deprecated | Use [`sindex-list`](https://aerospike.com/docs/database/reference/info/#sindex-list) instead |
| [`sindex-create`](https://aerospike.com/docs/database/reference/info/#sindex-create) | `indexdata` parameter is deprecated | Use the `bin` and `type` parameters instead |
| [`statistics/xdr`](https://aerospike.com/docs/database/reference/info/#statistics) | deprecated | Use the following for XDR statistics: `get-stats:context=xdr;dc=dataCenterName` |

Also deprecated:

-   When the `id` parameter of info commands refer to a namespace; use `namespace` instead.
-   When the `ns` parameter of info commands refer to a namespace; use `namespace` instead.
-   Making an info request without a specified command.

## Client API

| Item | Action | Notes |
| --- | --- | --- |
| [`device_size`](https://aerospike.com/docs/develop/expressions/metadata#device_size) | deprecated | Use [`record_size`](https://aerospike.com/docs/develop/expressions/metadata#record_size) instead |
| [`memory_size`](https://aerospike.com/docs/develop/expressions/metadata#memory_size) | deprecated | Use [`record_size`](https://aerospike.com/docs/develop/expressions/metadata#record_size) instead |

The following deprecations involve internal client-server communication. The latest clients switch to non-deprecated alternatives.

-   Queries with a list of bin names is deprecated; use a list of bin read ops instead.
-   Queries with a list of bin ops which aren’t bin reads; use a list of bin read ops.
-   Use of language-encoded blobs.
-   Sending compressed size in little-endian.
-   CDT parameter protocol using 16 bit parameter count.

### Server logs added

-   [Mesh node hostname resolves to IPv6 address](https://aerospike.com/docs/database/reference/logs/#info__1727290502)
-   [Mesh node hostname resolves to IPv4 address](https://aerospike.com/docs/database/reference/logs/#info__1283519610)
-   New [`Deprecation`](https://aerospike.com/docs/database/reference/logs#deprecation) logging context contains information about deprecated features being used.

## Tools updates

Aerospike tools 12.0.1 is required for some of the features in Database 8.1.0. See [Aerospike Tools Release Notes](https://aerospike.com/docs/database/tools/release-notes) for more information.

::: note
The tools 11.1.1 release removed support for macOS 12 for all tools.
:::

## Client/server feature compatibility

For a complete list of client features and the server versions that support them, see the [Client Matrix](https://aerospike.com/docs/develop/client-matrix).

### Compatible client versions

For full feature access in Database 8.1.0:

-   Java Client: 9.1.0
-   Python Client: 17.1.0
-   C# Client: 8.1.0
-   C Client: 7.1.0
-   Go Client: 8.4.0
-   Node.js: 6.3.0
-   Rust: 2.1.0

## Compatible connector versions

-   Trino connector 1.2.0 or later
-   Spark connector 3.1.1 or later

## Platform updates

See [Platform support and compatibility](https://aerospike.com/docs/database/reference/platform-support) for all currently supported platforms.

## Product lifecycle updates

Database 8.1.0 is generally available (GA) and will be supported for 3 years. See [Aerospike Database Versioning & Releases](https://aerospike.com/docs/database/reference/platform-support) and [product stages](https://aerospike.com/docs/database/reference/product-stages) for details.

## Known issues

See [Database known issues reference](https://aerospike.com/docs/database/reference/issues?search=8.1.0.0) for details.

## Complete list of changes

| ID | Description |
| --- | --- |
| AER-6799        | (KVS) Improved vertical scalability of arena allocations. |
| AER-6806 | (LOGGING) Changed logging level from detail to info for resolved mesh node IP addresses when heartbeat uses FQDN. |
| AER-6810 | (NETWORK) Deprecated support for Application Device Queues (ADQ). |
| AER-6811 | (XDR) Return an error when an info command adds (or removes) already added (or removed) namespace. |
| AER-6819 | (INFO) Added user-agent-set, user-agents command to list client versions connected to the server. |
| AER-6820 | (ACL) Added support for a special password that disables a user’s password authentication. |
| AER-6823 | (KVS) Optimized performance of records with high bin counts in read paths. |
| AER-6824 | (ACL) Added network tls context configuration item `pki-user-append-ou` to include the certificate’s “OU” value in the username for PKI authentication. |
| AER-6825 | (KVS) Added “apply-ttl-reductions” config and related metrics. |
| AER-6826 | (KVS) Deprecated various configs, info commands, data types, and protocol. |
| AER-6829 | (NETWORKING) Created a dedicated admin port for administration purposes. |
| AER-6830 | (TLS) Changed `tls-port` and `tls-address` to require explicit values if either is configured. |
| AER-6832 | (SINDEX) Indexing based on expressions. |
| AER-6833 | (XDR) In a datacenter configuration, allow multiple namespaces to be mapped to the same remote namespace. |
| AER-6835 | (LOGGING) Improved health outliers by reducing false positives and decreasing logging level to INFO. |
| AER-6837 | (INFO) Added `alumni-clear-alt` and `alumni-tls-alt` info commands. |
| AER-6838 | (CONFIGURATION) Increased minimum `data-size` from 256M to 512M. |
| AER-6839 | (LOGGING) Added detailed version logging at startup. |
| AER-6842 | (FABRIC) Fixed possible crash for corrupt digest fields on fabric messages. |