Loading
Aerospike Database 7.1 Release Notes
Aerospike Database Release Notes 7.1โ
May 15, 2024
Aerospike Database software version 7.1 is now available.
New in this versionโ
This version implements a variety of feature requests and improvements to enhance performance, usability and reliability.
New featuresโ
- Adds support for Least Recently Used (LRU) evictions.
- See the detailed complete list of all new features.
Updatesโ
- Aerospike Tools 11.0.0.
- See Platform support and compatibility for all currently supported platforms.
Improvements and enhancementsโ
- Previously, if a streaming write buffer (SWB) did not fill up before the
flush-max-ms
time (by default 1 second), the partially full SWB would be flushed to a persistent storage device with padding. In order to reduce excess IO in lower throughput situations, the writes that have accumulated are written inflush-size
units, and appended to the previously written data in the write-block. - Partial flushes under the current buffer lock no longer block service threads trying to write to the buffer. Applies to
storage-engine device
andstorage-engine memory
with storage-backed persistence. - CPU consumption is reduced for encryption-at-rest, as encryption is done in the flush threads instead of the service or fabric threads.
- The server now strictly restricts Map keys to one of these data types - integer, string or blob.
- In Database 7.1 (and hotfixed in all 6.x releases) the client can reserve partitions that are not full for short queries against available and partition tolerant (AP) namespaces. This prevents short queries from timing out completely when the cluster is rebalancing its data after a cluster size change. Following a slow rolling upgrade process (waiting for migrations to complete) reduces the chance of race conditions when short queries may miss records that were just written within the cluster tend interval (by default 1 second). This is not an issue in strong-consistency (SC) namespaces, or in stable AP namespaces.
- The new query duration policy allows clients to reserve partitions that are not full for long queries running against AP namespaces. This should only be used for long queries that behave like short queries, meaning that they quickly return a very small number of records. By default long queries will behave as before, returning correct results even when AP namespaces are being rebalanced, by deferring queries against migrating partitions until they have completed their migration.
- In
storage-engine memory
namespaces with no storage backing, the server will not start ifcommit-to-device
is set to 'true'. - Added namespace configuration items
indexes-memory-budget
andevict-indexes-memory-pct
to manage memory usage by all indexes.
Configuration item changesโ
Item | Action | Notes |
---|---|---|
write-block-size | removed | Use flush-size or post-write-cache . |
post-write-queue | removed | Replaced by post-write-cache |
default-password-file | added | Specifies an initial password for the default admin user. |
indexes-memory-budget | added | When nonzero, triggers stop-writes if the combined RAM indexes' size (primary, secondary, and set indexes) exceeds the budget. |
evict-indexes-memory-pct | added | When nonzero, triggers eviction if indexes-memory-budget is also configured nonzero, and the combined RAM indexes' size exceeds the configured percentage of the budget. |
batch-max-requests | reintroduced | Limits the number of sub-requests per batch transaction. |
default-read-touch-ttl-pct | added | Allows reads that are within a specified percent of their expiration time to extend the record TTL. Used to support LRU evictions. |
auto-revive | added | Selectively revives partitions at startup. |
tls-refresh-period | added | How often a background thread should check with Secret Agent for new TLS certificates. |
flush-size | added | Specifies the size of storage write units. |
post-write-cache | added | Replaces post-write-queue . |
storage-engine device | enhanced | Encrypt on flushing to device instead of on writing to buffers. |
max-record-size | modified | Default value changed to 1MiB. |
storage-engine memory | modified | Changed the minimum allowed value of data-size to 128M. Applies only to memory namespaces with no backing. |
Metrics changesโ
Item | Action | Description |
---|---|---|
auto_revived_partition | added | Shows the number of partitions automatically revived at startup. |
migrate_fresh_partitions | added | Added for AP. |
read_errors | added | In the per-device stats, tracks read IO errors from the SSD. Relevant only for storage-engine device . |
read_touch_tsvc_error | added | Number of read touches that time out in the internal transaction queue due to an error. (A read_touch is a read operation that extends the expiration of a record based on the read-touch-ttl-pct .) |
read_touch_tsvc_timeout | added | Number of read touches that time out early in the internal transaction queue, while waiting to be picked up by a service thread. |
read_touch_success | added | Number of successful read touches. |
read_touch_error | added | Number of read touch errors which were not timeouts. |
read_touch_timeout | added | Number of touches that ended in timeout. |
read_touch_skip | added | How many touches were abandoned because another write (including an earlier touch) has taken place or is taking place, removing the need to proceed with the touch. |
indexes_memory_used_pct | added | Combined RAM indexes' size as a percentage of when indexes-memory-budget is configured to nonzero. |
batch-rec-count | added | Global logarithmic histogram tracking the number of records per batch request. This histogram is dumped in the ticker - it will appear immediately following the batch-index latency histogram. |
Server log changesโ
Item | Action | Notes |
---|---|---|
read-touch | added | Statistics for the read-touch LRU behavior. |
info-command | added | Logs text of info-command IP address of client. |
bytes-shipped | added | XDR ticker log line now has how many shipped to a specific destination. |
read-complete | enhanced | Added UNPARSABLE count. |
expected-migrations | enhanced | Added fresh-partitions to the partition balance log line in SC. |
NSUP log lines or eviction or stop-writes breaches | enhanced | May now have a new reason: indexes-memory . |
Breached eviction log line | enhanced | May now show a used-pct: 'NUMBER' in the indexes-memory section if indexes-memory-budget is configured nonzero. |
Tools changesโ
Changes in Tools 11.0โ
See Tools 11.0.0 Release Notes.
Client/server feature compatibilityโ
For a complete list of client features and the server versions that support them, see the Client Matrix.
Minimum compatible client versionsโ
For full feature access in Database 7.1:
- Java client 8.1
- Python client 15.0
- C# client 7.1
- C client 6.6
- Go client 7.2
- Node.js client 5.12
- PHP 1.0
Ecosystem compatibilityโ
Compatible connector versionsโ
- Trino connector 1.7 or later
- Spark connector 3.2.2 or later
Prerequisites and notesโ
- For upgrade instructions, refer to Upgrade or Repair Server
- For special upgrade instructions, refer to Upgrade to Aerospike Database 7.1
Complete list of changesโ
ID | Description |
---|---|
AER-6696 | (ACL) Added security context configuration item default-password-file to specify an initial password for the default "admin" user. |
AER-6697 | (STATS) Added some minor stats, and made assorted logging and debugging improvements. |
AER-6698 | (STORAGE) For storage-engine device namespaces with encryption configured, encrypt on flushing to device instead of on writing to buffers. |
AER-6699 | (KVS) Introduced policy and configuration to enable reads to occasionally touch a record and extend its life. |
AER-6703 | (STORAGE) Flush partially filled current buffers to device outside the current buffer lock. |
AER-6707 | (CDT) Restrict map keys to simple types -- integer, string, and blob. |
AER-6708 | (QUERY) Added a policy to allow long queries in AP namespaces to reserve any partition with data. |
AER-6710 | (BALANCE) Added strong-consistency namespace context configuration item auto-revive to selectively revive partitions at startup. |
AER-6713 | (TLS) Added service context configuration item tls-refresh-period to support dynamic TLS certificate rotation for all types. |
AER-6715 | (BATCH) Reintroduced service context configuration item batch-max-requests to limit the number of sub-requests per batch transaction. |
AER-6716 | (STORAGE) Removed storage context configuration item write-block-size . |
AER-6717 | (STORAGE) Added storage context configuration item flush-size to specify the size of large block writes. |
AER-6718 | (STORAGE) Replaced storage context configuration item post-write-queue with post-write-cache . |
AER-6719 | (STORAGE) Changed default value of namespace context configuration item max-record-size to 1MiB. |
AER-6722 | (STORAGE) For storage-engine memory namespaces, changed the minimum allowed value of data-size to 128M. |
AER-6729 | (STORAGE) For storage-engine memory namespaces without backing, commit-to-device is no longer configurable since the behavior is automatic. |
AER-6730 | (TLS) Support rotating from RSA to ECDSA certificates at runtime. |
AER-6733 | (KVS) Added namespace context configuration items indexes-memory-budget and evict-indexes-memory-pct to manage memory usage by all indexes. |
Product lifecycle updatesโ
Aerospike provides Maintenance and Support for 2 years (24 months) from it's generally available (GA) release. See Platform support for details.