Can you explain the idea of as_write_smoothing?

I assume that you are talking about wear leveling technique we follow to not burn the SSDs. Let us know if this is not the question.

We never do in-place updates. So, an update in aerospike will be read + modify in memory + write to an active buffer which is getting filled + flush the active buffer when it is full (configurable, typically 128KB-1M). This way, there will be far fewer writes to disk than the total number of write operations. But more importantly if there are small updates like updating integer values, or updating few bytes, we will not end up doing a 4KB block write (or what ever the block size is) on the SSDs for every such operation.

No. It is accounting inside drv_ssd.c to do micro sleep, so in the meantime write buffers fill in properly.