asinfo -v “…set-delete’’’” must be run on each node. Or run it via asadm -e 'asinfo -v “…” '.
Otherwise use the java set-delete jar per your original post which implements scanAll() to delete each record in the set.
After all records are deleted from the set, you can verify using aql,
look for number of objects in the set, should be zero.
If you coldstart any node, deleted records may come back. (All the “empty” blocks containing deleted records and not yet overwritten by other new data “will” come back.)
Use ver 3.12.1+ Enterprise Edition and use truncate to delete a set if you don’t want deleted records from a set to come back. truncate needs to be issued to only one node in the cluster.
If using asinfo set-delete, (prior to ver 3.12), you cannot durably delete all the records in a set.
Estimating time required to run nsup thread:
grep thr_nsup /var/log/aerospike/aerospike.log
and see the total time nsup thread is taking to run. compare that to your nsup-period setting. nsup-period must be greater than sum of all total times for nsup to run, sum for all namespaces, in each node. Once nsup has finished deleting the records in the set, you should not have any records in the set. Validate for each node in the cluster.