Error message in log: rejecting writes

by young » Mon Nov 05, 2012 11:40 am

I am seeing error messages rejecting writes. What do they mean?

You may see the following error messages in the log file /var/log/citrusleag.log.

Aug 01 2012 23:31:32 GMT: WARNING (drv_ssd): (storage/drv_ssd.c:1956) write: rejecting 386f54f5c8829380 write size: 295936
Aug 01 2012 23:31:33 GMT: WARNING (drv_ssd): (storage/drv_ssd.c:1956) write: rejecting 367f54f5c8856780 write size: 295936
Aug 01 2012 23:31:34 GMT: WARNING (drv_ssd): (storage/drv_ssd.c:1956) write: rejecting 973f54f5c4159380 write size: 295936
Aug 01 2012 23:31:35 GMT: WARNING (drv_ssd): (storage/drv_ssd.c:1956) write: rejecting 1c6b26138c93df82 write size: 269824

What this error message says is that you are trying to write an object that is larger than the block size. The database is rejecting writes for these objects. By default the block size is set at 128 KB. This can be reset by altering your configuration file.

In the file /etc/citrusleaf/citrusleaf.conf, go to the namespace in question. In the “storage-engine” section you will need to put the following into this section:

write-block-size 262144

The default for SSDs is 131072 (exactly 128 KB). You can change the value to any integral multiple of that (2x in this example). Aerospike does not recommend any size above 1 MB. One result of this may be increased latency. In practice, the increase is very small, but the value should be kept to as close to default as possible.

You will need to clear the SSDs by "dd"ing them. To do this run the command:

sudo dd if=/dev/zero of=/dev/sdX bs=128k &

Where “sdX” is the device ID of the SSD in question. This command takes 10-15 minutes on 256 GB drives and can be done in parallel with other dd commands.