Expired records reappears in cold restart


#1

Hi, I have inserted 30,000 records with writepolicy expiration set as -1. Then after some time I did update the same records with expiration as 1 (TTL - 1 Second) . After all the records expired , when I do a cold restart I can see some of the records reappear.

Is there any way where I can delete/expire the records in CE , so that it will not reappear when cold restart is issued.

NS configuration:

namespace test {
        replication-factor 1
        memory-size 4G
        storage-engine device {
        file /opt/aerospike/data/test
        filesize 20G
        write-block-size 128K
       }
}

#2

This has been discussed before in the forum, and there’s a knowledge base article on the topic: Issues with cold-start resurrecting deleted records.

Also see: Guidelines for Deleting Data.


#3

Thank You ! Can you please help me in explaining any way out there via which I delete/expire a record(s) from a set and make sure that it does not come back after the cold restart.


#4

The long answer is discussed here:

The short answer is, durable deletes, which are an Aerospike Enterprise Edition feature.


#5

Hi, Thank you for the information!

While writing a record to database there is a field in WrietePolicy , which is generation. If I am explicitly setting it to 0 or 1 and next I am trying fetch the record I see the generation is incremented value equal to number of times the record is updated. Is this generation value decides different version of records in the device file (persisted records to file or ssd) ?

Can client change this generation value to 1 always. I am not clear on the use of this generation field in WritePolicy.


#6

This is unrelated to the topic. In order to make the discussion forum more useful for other developers please open it as a separate question.