Asinfo set-delete: change the AEROSPIKE_ERR_SERVER_FULL error message (AER-3191)

deletion

#1

I wanted to delete the content of a set (that contains some records (2 records during this test)), so I run:

./asinfo -v "set-config:context=namespace;id=test;set=myset;set-delete=true;"

just after asinfo finished with value is ok I tried to insert a new record from aql into that set and got a AEROSPIKE_ERR_SERVER_FULL error:

aql> insert into test.sinitest (pk, bin1) values ('key3', 4)
Error: (8) AEROSPIKE_ERR_SERVER_FULL

After waiting some seconds or maybe a minute (and not doint anything else), the insert completed successfully. The server is configured to in-memory and there is plenty of free space This seems to be a bug. Please let me know if it can be fixed.


#2

The deletion of data is taken care of by a separate thread (Namespace supervisor cycle). By default it is set to 2 min (nsup-period = 120 sec). Thus, the issue that you observed is not a bug, but an expected behavior. The deletion of set is done in 1 cycle and the deletion of data in the set is taken care of in the next nsup cycle, which is the time lapse that you saw in which you were not able to insert the record.

More information here: Deleting a set— http://www.aerospike.com/docs/operations/manage/sets/#deleting-a-set-in-a-namespace

Nsup-period— http://www.aerospike.com/docs/reference/configuration/#nsup-period

That being said, we do understand the expected behavior and your feedback has been forwarded to the Engineering team for a future change as appropriate.

As a workaround, you might want to consider using a Scan and Deletion option as suggested by the following Community Labs. http://www.aerospike.com/community/labs/deleting_sets_and_data.html


#3

Thanks for forwarding my feedback to Engineering. After reviewing your reply and the documentation, my concern is not the behaviour, but the error message itself. It is not actually true (that the server is full), but - if I understand it correclty - it is only disabled to write to this set until the maintenace thread finishes its work, so it should say instead something like ‘WRITE_TO_SET_IS_TEMPORARY_DISABLED’ or something similar.

Thanks for you support.


#4

Thanks! I have forwarded your suggestion to the Engineering team for a consideration. Appreciate the feedback.


#5

@Sini,

Thank you for your suggestion. A JIRA has been filed to follow up on this; it’s AER-3191, just for your reference. Please stay tuned for updates on our progress.


#6

@Sini,

This issue was fixed and rolled out with Aerospike Server Community Edition version 3.5.2 earlier this year:

  • KVS - AER-3191 - Added proto error code AS_PROTO_RESULT_FAIL_FORBIDDEN, currently for failing writes during set-delete.

You can find the full release notes for version 3.5.2 here, but please note that we are now on version 3.5.15 :laughing: