Why does "disable-eviction" not work?

+------------------+--------+----------------+---------+-------------------+-----------+-------------------+--------------+------------+
| disable-eviction | ns     | set-enable-xdr | objects | stop-writes-count | set       | memory_data_bytes | truncate_lut | tombstones |
+------------------+--------+----------------+---------+-------------------+-----------+-------------------+--------------+------------+

| "false"          | "test" | "use-default"  | "0"     | "0"               | "test123" | "0"               | "0"          | "0"        |

| "true"           | "test" | "use-default"  | "1"     | "0"               | "test456" | "32"              | "0"          | "0"        |

+------------------+--------+----------------+---------+-------------------+-----------+-------------------+--------------+------------+

i have set the disable-eviction on , and then insert a record , and then get the ttl expire time the record still been eviction , why does disable-eviction not work ?

i want to use this feature to make a set be unexpired , but failed

my aerospike version is 3.15.0.3 , only memory mode , only one node

anyone help

thanks

eviction is aerospike removing a record closest to expiration when you start running out of disk space (exceed the disk high-water-mark - default 50% for disk, 60% for memory). You will not hit eviction when you just entered one record.

expiration is natural end of life of the record. aerospike removes expired records. if you don’t want a record to expire, set TTL to 0 in namespace config or set TTL =-1 from the client - make it ā€œlive foreverā€.

1 Like

thank you very much , your reply is very helpfull , : ) :grinning: :+1:

set-disable-eviction With this setting turned on, a set will be protected from evictions. If evictions are in effect, records on a set with set-disable-eviction turned on will not be evicted, regardless of their expiration time.

but i read the doc again ,the doc says if disable-eviction turn on, record will not be evict , no matter if the record get it’s expiration time;

what’s the different between expired and eviction ?

in my understanding, the data expired and server get the HWM , then server begin evict those expired data , if server not evict those expired data (set-disable-eviction turn on) , does those expired data can be selected or readable ? if not , why do we need (set-disable-eviction ) disable eviction , any way ,we can’t get the expired data , and the dirty page of memory for store these expired data can’t be flush .

refer to this topic Why expired-objects > (evicted-objects+ object) now i know the difference between eviction and expiration , both of them are memory flush mechanism,but expiration flush method is frequency flush , evition is conditionally(HWM) flush

thanks to pgupta

expiration - is a feature: you are telling Aerospike, after n seconds or n days, would you kindly get rid of this record for me? if you don’t want to use it, declare record as ā€œlive-for-everā€.

This is useful for storing things like user browsing data which may be irrelevant after 30 days or 90 days and you don’t want to go back into Aerospike to clean it up.

1 Like

This topic was automatically closed 6 days after the last reply. New replies are no longer allowed.