I could not understand why when I delete record and then restart aerospike record come back (it is again in the “set”)? Is it normal? How I can delete it forever?
You can’t, this is by design. It probably will be overwritten by another record, someday.
Best solution for now: don’t restart aerospike.
I find a cold-restart-empty option. Have you experience using it? Can it help me?
No, it does not get overwritten by another record. It gets picked up by the evictor and removed completely, it just doesn’t happen immediately. In general, it helps to read the manual:
@max83, yes, one solution is to issue an empty cold restart. The index will not be rebuilt from the disk, so no zombies may rise. However, if you have a lot of data it will have to be migrated over. This is similar to an empty new node joining the cluster. The usual cold restart attempts to shorten that process by keeping as much data as is available locally.
You would add the cold-start-empty line inside your namespace config, within the storage device block. Once the configuration file is modified you would issue a cold restart.