Query on Evictions

We are using Aerospike version and we have set default ttl to 7 days and high-water-memory-pct as 65. Wanted to know that evictions would automatically be handled in this case ?

I was reading a documentation a topic for the same and found the below line: if ( default-ttl == 0) || ( eviction-period == 0) do not run eviction; otherwise, execute one of the following steps depending of the type of namespace doc link: Records TTL and Evictions - For Aerospike server version prior to 3.8 ( The doc attached in above link for higher version does detail out the different mechanism used but does not talk about whether eviction-period is still used or not, also tried to check in the namespace retention doc where it says the nsup-period should be not zero and default-ttl should not be zero. Cannot find nsup period setting in configuration for 3.16 but verified in logs that it’s running every 2 minutes. As stated above the default-ttl is non-zero and set to 7 days.)

I cannot find eviction-period in configuration reference of Aerospike and neither running asinfo -v get config gives me any output. Therefore, please help us know if evictions would happen for us ?

Our configuration file is below:

service {

user root

group root

pidfile /var/run/aerospike/asd.pid


logging { file /var/log/aerospike/aerospike.log {

	context any info

	context migrate debug



network { service { address any port 3000 }

heartbeat {
	mode mesh

	port 3002

	mesh-seed-address-port 3002

	mesh-seed-address-port 3002

	mesh-seed-address-port 3002

	mesh-seed-address-port 3002

	mesh-seed-address-port 3002

	mesh-seed-address-port 3002

	mesh-seed-address-port 3002

	mesh-seed-address-port 3002

	mesh-seed-address-port 3002

	interval 150
	timeout 10

fabric {
	port 3001

info {
	port 3003


namespace central-cache { replication-factor 2 memory-size 77G

default-ttl 7d

storage-engine memory

high-water-memory-pct 65


That is a very old doc for old versions (prior to 3.8). eviction-period is certainly not a config param that would exist in version 3.16.

Evictions would happen if a high water mark is breached and nsup-period is not set to 0 (except if allow-ttl-without-nsup is configured) and records have a non 0 ttl.

Hopefully this namespace data retention document helps.

Hi meher,

We are using Aerospike version 3.16 and there is no option of setting nsup-period or allow-ttl-without-nsup . These are present in newer versions. Also I had checked in the logs and found that supervisor was running every 2 minutes so assuming nsup is 2 minutes, as for allow-ttl-without-nsup since there is no option for the above version of Aerospike so we did not set any value.

So what should we assume about evictions in this situation ?

nsup-period is an option in version 3.16, but is set at the service level (was moved to namespace level in version 4.5.1).

So you can change it dynamically but I don’t think you can set it to 0 to completely disable it in version 3.16… you can make it to a high value if you want it to run less frequently:

asinfo -v "set-config:context=service;nsup-period=86400"

So, to recap, in version 3.16:

  • If you have records with a ttl set, you will be susceptible to evictions when the namespace supervisor runs (based on the nsup-period config or more if it takes longer than nsup-period to reduce the whole index).
  • Evictions will happen when a high water mark has been breached (as detailed in the previously referred documentation).
  • If you want to disable evictions in version 3.16, you would have to set the high water mark to 100%, but I would recommend upgrading to a recent version and set the high water marks to 0 (which is the default in those more recent versions).
© 2021 Copyright Aerospike, Inc. | All rights reserved. Creators of the Aerospike Database.