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.