Skip to content

Database 8.1.2 Release Notes

April 16, 2026  |  Download

New in this version

  • Enhanced path expressions
  • Operation projection added to queries
  • Set index management
  • Support for AlmaLinux 9 and 10

Enhanced path expressions

Enhanced the expression API to make path expressions easier to write.

Path expressions significantly enhance Aerospike’s capability as a document store, simplifying the developer experience by offering native support for JSON-like models. Developers can effectively model data as a list of map elements and easily index, query, and retrieve data from those complex structures. When combined with index expressions, you can use path expressions to index and query data within deeply nested structures.

See Path expressions for details.

Operation projection in queries

Queries now accept the same bin projection, operations, and read expressions used in single-key and operate batched-commands. This unifies the developer API and eliminates the two-phase query and batch workaround.

  • Use read operations (bin reads, collection data type (CDT) API and read expressions) in query projections.
  • Apply path expressions in query projection, not only in the filter expression.
  • Reduce bandwidth and latency by projecting only requested bins or values computed server-side.
  • Projection of a list of bin-names remains supported for backward compatibility.

See Operation projection in queries for details.

Manage set indexes with info commands

You can create and delete set indexes using the same info commands as secondary indexes, with the sindex-admin privilege. With this change, you can manage set indexes on Aerospike Cloud, where the sys-admin role is not available to users.

  • Create a set index – Use sindex-create with indextype=set and a required index name, namespace, and set. The equivalent command in asadm is manage sindex create INDEX-NAME ns NAMESPACE set SET.
  • Delete a set index – Use sindex-delete with the index name, namespace, and set. The sindex-admin privilege is required.
  • List indexessindex-list and show sindex include both secondary and set indexes. The output includes a mode column (secondary or digest).

See Managing set indexes and Set index.

Deprecated: set-config / enable-index for set index lifecycle

Creating or removing set indexes via set-config (or asadm manage config) with enable-index is deprecated. Use sindex-create and sindex-delete instead. Deprecation warnings are logged when the config method is used. Backward compatibility is maintained: you can still use set-config/enable-index for existing workflows, but new set indexes should use sindex-create. See Managing set indexes and Special upgrades for upgrade guidance.

Control group (cgroup) memory tracking

The new cgroup-mem-tracking service configuration parameter enables control group (cgroup)-aware stop-writes memory calculations. When enabled, system_free_mem_kbytes and system_free_mem_pct report control group (cgroup)-aware values. The new host_free_mem_kbytes and host_free_mem_pct statistics always report host-level memory. Even when disabled, the server logs a warning if a control group (cgroup) memory limit is detected and less than 10% is available.

Query threads limit warning

The warning about exceeding query-threads-limit is now rate-limited through the ticker instead of emitted per query. Per-job failure warnings are demoted to detail level.

TLS CA hot-reload (Enterprise only)

The TLS refresh mechanism now monitors ca-file and ca-path for changes. When CA trust material changes, the SSL context is rebuilt and swapped, enabling CA rotation without a node restart.

XDR recovery drain on prole (Enterprise only)

Pending XDR recovery retry requests are now drained when a partition transitions to prole, preventing a possible invariant violation where a node could become master with more than MAX_IN_PROGRESS outstanding requests.

Tools updates

See the Tools 13.0.0 release notes for full details.

Upgrade instructions

You can upgrade directly to Database 8.1.2 from releases 7.1.0.x through 8.1.1.x.

Info command updates

ItemActionNotes
sindex-createextendedAdd mode=digest to create a set index. Default mode=secondary for traditional secondary indexes.
sindex-deleteextendedSupports deleting set indexes created with sindex-create.
sindex-listextendedOutput includes set indexes; mode (or equivalent) column indicates secondary or digest.
sindex-existsextendedChecks for set indexes in addition to secondary indexes.

Configuration / set-config

ItemActionNotes
set-config / enable-index for set index create/removedeprecatedUse sindex-create with mode=digest and sindex-delete instead. See Managing set indexes.
tomb-raider-unmark-threadsaddedCaps parallelism during the tomb raider unmark phase.
cgroup-mem-trackingaddedWhen enabled, stop-writes memory calculations use control group (cgroup) limits instead of host /proc/meminfo.
proto-fd-maxmodifiedUpper limit increased from 2,097,152 to 2,147,483,647 (INT32_MAX).

Statistics changes

ItemActionNotes
host_free_mem_kbytesaddedAlways reports host-level free memory in KiB, regardless of cgroup-mem-tracking.
host_free_mem_pctaddedAlways reports host-level free memory percentage, regardless of cgroup-mem-tracking.
system_free_mem_kbytesmodifiedWhen cgroup-mem-tracking is enabled, reports control group (cgroup)-aware values.
system_free_mem_pctmodifiedWhen cgroup-mem-tracking is enabled, reports control group (cgroup)-aware values.
stop-writes-sys-memory-pctmodifiedMemory evaluation now respects cgroup-mem-tracking.

Server log changes

ItemActionNotes
system cpu/memory stats tickermodifiedAdded host-free-mem-kbytes and host-free-mem-pct fields to the system ticker line.
control group (cgroup) used bytes exceed limitaddedWarns when cgroup used bytes exceed the configured memory limit.
control group (cgroup) zero available memoryaddedWarns when cgroup reports zero available memory.
control group (cgroup) memory below 10 percentaddedWarns when cgroup-available memory drops below 10%.
failed to read /proc/meminfoaddedWarns when the server cannot read /proc/meminfo.
bad cgroup-mem-tracking valueaddedWarns on an invalid cgroup-mem-tracking configuration value.
cgroup-mem-tracking already setaddedLogged when cgroup-mem-tracking is set to its current value.
cgroup-mem-tracking changed from falseaddedLogged when cgroup-mem-tracking is enabled.
cgroup-mem-tracking changed from trueaddedLogged when cgroup-mem-tracking is disabled.
query-threads-limit reached (ticker)addedRate-limited ticker warning replaces the former per-query warning.
basic query job failed to start (demoted)addedDemoted from warning to detail level.
aggregation query job failed to start (demoted)addedDemoted from warning to detail level.
udf-bg query job failed to start (demoted)addedDemoted from warning to detail level.
ops-bg query job failed to start (demoted)addedDemoted from warning to detail level.
expression display nulladdedWarns when an expression is null during display.
build_in_list invalid arg typeaddedInvalid argument type for IN_LIST expression.
eval_in_list list expectedaddedIN_LIST expression received a non-list argument.
build_count_sz invalid instructionaddedInvalid instruction during expression build.
cdt_select_map invalid key listaddedInvalid key list in CDT map select.
cdt_select_map key list not orderedaddedUnordered key list in CDT map select.
cdt_select_stack_init AND invalid ctx typeaddedInvalid context type in CDT select AND clause.
cdt_select_stack_init AND no preceding entryaddedAND clause with no preceding entry in CDT select.
cdt_select_stack_init duplicate ANDaddedDuplicate AND in CDT select stack.
cdt_select_stack_init AND on EXP baseaddedAND clause on expression base in CDT select.
sindex-create context not supported for set indexaddedContext parameter not supported for set index creation.
sindex-create indexdata not supported for set indexaddedIndex data parameter not supported for set index creation.
sindex-create type not supported for set indexaddedType parameter not supported for set index creation.
sindex-create bin not supported for set indexaddedBin parameter not supported for set index creation.
sindex-create exp not supported for set indexaddedExpression parameter not supported for set index creation.
sindex-create namespace not foundaddedNamespace not found during set index creation.
sindex-create failed to get/create setaddedFailed to get or create set during set index creation.
sindex-delete deleting in SMDaddedLogged when a set index is deleted via SMD.
SINDEX CREATE index name already in useaddedIndex name collision during set index creation.
SINDEX CREATE failed get-create setaddedFailed to get or create set during SMD processing.
SINDEX DROP set not foundaddedSet not found during set index drop.
SINDEX DROP si not foundaddedSecondary index not found during set index drop.
set index enabled via different method - cannot enableaddedCannot enable a set index that was enabled via a different method.
set index already disabledaddedSet index is already disabled.
set index enabled via different method - cannot disableaddedCannot disable a set index that was enabled via a different method.
smd set name required for set indexaddedSet name required when creating a set index via SMD.
SINDEX CREATE renaming indexaddedLogged when an existing set index is renamed.
SINDEX CREATE request received via SMDaddedLogged when a set index create request arrives via SMD.
SINDEX DROP already disabledaddedSet index already disabled during drop.
SINDEX DROP request received via SMDaddedLogged when a set index drop request arrives via SMD.
changing creation mode of set indexaddedLogged when a set index creation mode changes.
set index already enabled via methodaddedSet index already enabled via the specified method.
basic query job no bin data and projection ops both setaddedCannot set both no-bin-data and projection operations.
queries should only provide read opsaddedQuery projection received a non-read operation.
apply_ops_make_response failedaddedProjection operation response construction failed.
build_ops_response_msg can’t get keyaddedCannot retrieve key during projection response.
apply_ops_make_response bad number of opsaddedUnexpected operation count during projection response.
read_local bad number of opsaddedUnexpected operation count in local read.
error while fetching timestamp for CA fileaddedError reading timestamp of CA file during refresh check.
failed to load CA fileaddedCA file could not be loaded during hot-reload.
retrying CA refresh in contextaddedCA refresh failed; retrying in the named TLS context.
ca-file changed in contextaddedDetected change to ca-file in a TLS context.
ca-path changed in contextaddedDetected change to ca-path in a TLS context.
updated ca-fileaddedSuccessfully reloaded ca-file.
updated ca-pathaddedSuccessfully reloaded ca-path.

Known issues

See Database known issues reference for details.

Complete list of changes

IDDescription
AER-6866(LOGGING) Improve memory statistics and logging when running inside a control group (cgroup).
AER-6883(STATS) Introduced option to base stop-writes on control group (cgroup) limits.
AER-6884(EXPRESSIONS) Fix assert for invalid CDT context in expression display.
AER-6885(CONFIG) Increase proto-fd-max upper limit to INT32_MAX.
AER-6886(QUERY) Rate-limit query-threads-limit warning to ticker instead of per-query.
AER-6889(EXPRESSIONS) Add IN_LIST, MAP_KEYS, MAP_VALUES expression ops.
AER-6890(LOGGING) Improved bad record on disk logging.
AER-6891(SINDEX) Create set indexes with sindex-admin role.
AER-6892(SINDEX) Implement operation projection for foreground queries.
AER-6893(STORAGE) Introduced tomb-raider-unmark-threads to control parallelism across all devices.
AER-6895(CICD) Implement server builds from GitHub action runners.
AER-6897(TLS) Hot-reload CA trust material (ca-file, ca-path) without node restart (Enterprise only).
AER-6898(XDR) Drain pending XDR recovery retry requests when partition transitions to prole (Enterprise only).
Feedback

Was this page helpful?

What type of feedback are you giving?

What would you like us to know?

+Capture screenshot

Can we reach out to you?