Why expired-objects > (evicted-objects+ object)

I found the expired-objects is about 450k, while evicted-objects is only 23K and object is only about 290K refactor is 2 and the number of object includes backup objects I get this data from aerospike console

Eviction and expiration are two separate functions.

Evictions occur when you system resources are stressed beyond your configured high-water marks for a given namespace.

Expirations happen when an object lives past the TTL specified by either the default-ttl in your namespace’s config or specified by the client write.

Both functions are handled by a background Namespace Supervisor (nsup) thread. Which sweeps on a periodic basis specified by nsup-perod in the aerospike.conf file…

1 Like

yep at first, Aeorspike will auto delete the oldest data which may be included in expired data? If I ingest 80 records, and 50 records are expired, and the HWM is about 80, so maybe 5 records are evicted, then left objects should be 75. 75 + 5 > 50 Is that right?

If a record is expired it will no longer be readable and on the next nsup cycle it will be deleted regardless of your high water settings.

The high water setting determines when eviction will occur, eviction can be understood as “early expiration”. Basically it is to protect your system when resources are strained and evicts (delete) data that would naturally expire soonest.

Got it. Thanks very much I have a question. As there is a ttl time for each record, while it’s like this the record will expired after 30s, but it’s not the specific time like “2015-11-19 00:00:00”, so how will Aerospike consider when it’s expired. Is there a specific time for each record in Aerospike.

The expiration time (void time) is computed from the TTL provided by the client. When the message arrives on the server and you say you want the record to expire in 5 min. The server will compute 5 min from now and store that with the record (both on disk and in the index entry).

Got it thanks ~ I found the expired time in wiki: http://www.aerospike.com/apidocs/java/com/aerospike/client/Record.html

hi, other question. As wiki said, the disk usage should be controlled under 50%. Is there any same limitation for memory.

This KB explains our recommended defaults: