Articles in this section

Why do I get unexpected evictions on a node with no HWM breaches?

Detail

In some cases a node may evict records even though it has not crossed the configured high-water-mark (HWM) for eviction.


Answer

Starting in Aerospike 4.5.1, eviction behavior was enhanced so that eviction depth is coordinated across all nodes in the cluster.

Aerospike tracks eviction progress using a value called evict-void-time.
This timestamp represents the oldest record timestamp that should be retained in the namespace.
Records with a void-time less than or equal to this value are eligible for eviction.

Nodes exchange the current evict-void-time through the System Metadata (SMD) subsystem.
This ensures that all nodes in the cluster maintain a consistent eviction depth.

When a new node joins a cluster that has already performed eviction, the new node may receive an updated evict-void-time from other nodes.
Even if the new node has not exceeded its own high-water marks, it will evict records whose evict-void-time is older than the cluster-wide eviction cutoff.

This behavior ensures that newly joined nodes do not reintroduce records that have already been evicted elsewhere in the cluster.

 

In the example below, a new node joins a cluster where eviction has already occurred due to disk HWM pressure.
The new node starts with an empty eviction state:

Jan 14 2025 11:50:05 GMT: INFO (smd): (smd.c:2346) no file '/opt/aerospike/smd/evict.smd' - starting empty

The node then receives the cluster eviction timestamp:

Jan 14 2025 11:50:13 GMT: INFO (nsup): (nsup.c:314) {default} got smd evict-void-time 474903645

The namespace supervisor (nsup) then evicts records older than that timestamp:

Jan 14 2025 11:50:13 GMT: INFO (nsup): (nsup.c:515) {default} nsup-start: evict-threads 1 evict-ttl 352232 evict-void-time (0,474903645)
Jan 14 2025 11:50:13 GMT: INFO (nsup): (nsup.c:842) {default} nsup-done: non-expirable 0 expired (0,0) evicted (275,275) evict-ttl 352232 total-ms 3

This is expected behavior and ensures that eviction remains consistent across the cluster.


Applies To Earliest Version

Pre 4.9

Applies To Latest Version

Current Version
Was this article helpful?
0 out of 0 found this helpful