github aerospike/aerospike-server 8.1.2.0

7 hours ago

Aerospike Server Community Edition 8.1.2.0

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

Item Action Notes
sindex-create extended Add mode=digest to create a set index. Default mode=secondary for traditional secondary indexes.
sindex-delete extended Supports deleting set indexes created with sindex-create.
sindex-list extended Output includes set indexes; mode (or equivalent) column indicates secondary or digest.
sindex-exists extended Checks for set indexes in addition to secondary indexes.

Configuration / set-config

Item Action Notes
set-config / enable-index for set index create/remove deprecated Use sindex-create with mode=digest and sindex-delete instead. See Managing set indexes.
tomb-raider-unmark-threads added Caps parallelism during the tomb raider unmark phase.
cgroup-mem-tracking added When enabled, stop-writes memory calculations use control group (cgroup) limits instead of host /proc/meminfo.
proto-fd-max modified Upper limit increased from 2,097,152 to 2,147,483,647 (INT32_MAX).

Statistics changes

Item Action Notes
host_free_mem_kbytes added Always reports host-level free memory in KiB, regardless of cgroup-mem-tracking.
host_free_mem_pct added Always reports host-level free memory percentage, regardless of cgroup-mem-tracking.
system_free_mem_kbytes modified When cgroup-mem-tracking is enabled, reports control group (cgroup)-aware values.
system_free_mem_pct modified When cgroup-mem-tracking is enabled, reports control group (cgroup)-aware values.
stop-writes-sys-memory-pct modified Memory evaluation now respects cgroup-mem-tracking.

Server log changes

Item Action Notes
system cpu/memory stats ticker modified Added host-free-mem-kbytes and host-free-mem-pct fields to the system ticker line.
control group (cgroup) used bytes exceed limit added Warns when cgroup used bytes exceed the configured memory limit.
control group (cgroup) zero available memory added Warns when cgroup reports zero available memory.
control group (cgroup) memory below 10 percent added Warns when cgroup-available memory drops below 10%.
failed to read /proc/meminfo added Warns when the server cannot read /proc/meminfo.
bad cgroup-mem-tracking value added Warns on an invalid cgroup-mem-tracking configuration value.
cgroup-mem-tracking already set added Logged when cgroup-mem-tracking is set to its current value.
cgroup-mem-tracking changed from false added Logged when cgroup-mem-tracking is enabled.
cgroup-mem-tracking changed from true added Logged when cgroup-mem-tracking is disabled.
query-threads-limit reached (ticker) added Rate-limited ticker warning replaces the former per-query warning.
basic query job failed to start (demoted) added Demoted from warning to detail level.
aggregation query job failed to start (demoted) added Demoted from warning to detail level.
udf-bg query job failed to start (demoted) added Demoted from warning to detail level.
ops-bg query job failed to start (demoted) added Demoted from warning to detail level.
expression display null added Warns when an expression is null during display.
build_in_list invalid arg type added Invalid argument type for IN_LIST expression.
eval_in_list list expected added IN_LIST expression received a non-list argument.
build_count_sz invalid instruction added Invalid instruction during expression build.
cdt_select_map invalid key list added Invalid key list in CDT map select.
cdt_select_map key list not ordered added Unordered key list in CDT map select.
cdt_select_stack_init AND invalid ctx type added Invalid context type in CDT select AND clause.
cdt_select_stack_init AND no preceding entry added AND clause with no preceding entry in CDT select.
cdt_select_stack_init duplicate AND added Duplicate AND in CDT select stack.
cdt_select_stack_init AND on EXP base added AND clause on expression base in CDT select.
sindex-create context not supported for set index added Context parameter not supported for set index creation.
sindex-create indexdata not supported for set index added Index data parameter not supported for set index creation.
sindex-create type not supported for set index added Type parameter not supported for set index creation.
sindex-create bin not supported for set index added Bin parameter not supported for set index creation.
sindex-create exp not supported for set index added Expression parameter not supported for set index creation.
sindex-create namespace not found added Namespace not found during set index creation.
sindex-create failed to get/create set added Failed to get or create set during set index creation.
sindex-delete deleting in SMD added Logged when a set index is deleted via SMD.
SINDEX CREATE index name already in use added Index name collision during set index creation.
SINDEX CREATE failed get-create set added Failed to get or create set during SMD processing.
SINDEX DROP set not found added Set not found during set index drop.
SINDEX DROP si not found added Secondary index not found during set index drop.
set index enabled via different method - cannot enable added Cannot enable a set index that was enabled via a different method.
set index already disabled added Set index is already disabled.
set index enabled via different method - cannot disable added Cannot disable a set index that was enabled via a different method.
smd set name required for set index added Set name required when creating a set index via SMD.
SINDEX CREATE renaming index added Logged when an existing set index is renamed.
SINDEX CREATE request received via SMD added Logged when a set index create request arrives via SMD.
SINDEX DROP already disabled added Set index already disabled during drop.
SINDEX DROP request received via SMD added Logged when a set index drop request arrives via SMD.
changing creation mode of set index added Logged when a set index creation mode changes.
set index already enabled via method added Set index already enabled via the specified method.
basic query job no bin data and projection ops both set added Cannot set both no-bin-data and projection operations.
queries should only provide read ops added Query projection received a non-read operation.
apply_ops_make_response failed added Projection operation response construction failed.
build_ops_response_msg can't get key added Cannot retrieve key during projection response.
apply_ops_make_response bad number of ops added Unexpected operation count during projection response.
read_local bad number of ops added Unexpected operation count in local read.
error while fetching timestamp for CA file added Error reading timestamp of CA file during refresh check.
failed to load CA file added CA file could not be loaded during hot-reload.
retrying CA refresh in context added CA refresh failed; retrying in the named TLS context.
ca-file changed in context added Detected change to ca-file in a TLS context.
ca-path changed in context added Detected change to ca-path in a TLS context.
updated ca-file added Successfully reloaded ca-file.
updated ca-path added Successfully reloaded ca-path.

Known issues

See Database known issues reference for details.

Complete list of changes

ID Description
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).

Don't miss a new aerospike-server release

NewReleases is sending notifications on new releases.