Spinning platters are slower than RAM. We use caching of reads/writes to 'hide' this fact.
The useful thing about write IO is that it doesn't require disk IO to happen immediately - unlike a read, where you can't return data to the user until the read completes on the disk.
Thus writes operate under a soft time constraint - as long as our sustained throughput does not exceed that of our disk, we can hide a lot of the performance penalties in a write cache.
And we do need to write cache - spinning disks are very slow comparatively. But so to do modern RAID types have a significant penalty to operation.
A RAID 6 for example, in order to complete one write IO must:
- Read update block
- read parity1
- read parity 2
- write new block
- write parity 1
- write parity 2
Thus each write is actually 6 IO operations - and particularly when you've got slow disks like big SATA drives, this gets extremely expensive.
But there's a nice easy solution - write coalescing. If you can build a 'full stripe' write in a buffer, you don't need to read parity from your disk - you can compute it based on what you have in memory.
It's very desirable to do this, because then you don't have write amplification any more. Indeed, you can end up with a lower write penalty than RAID 1+0.
RAID 6, 8+2 - 10 spindles.
8 consecutive data blocks to write - compute parity in cache, and write one block to each disk. 10 writes per 8, means a write penalty of 1.25. 10 disks of RAID 1+0 still has a write penalty of 2 (because you have to write to each submirror). So in this scenario, you can actually make RAID 6 perform better than RAID1+0. In real world usage, you get a bit more of a mixed IO profile though.
So write caching makes a huge difference to perceived performance of RAID sets - you get to write at RAM speed and have a low write penalty - improving your sustained throughput if you do it.
And if you don't, you suffer the achey slow performance of SATA, but multiply it by 6 and add some contention in there. Your 10 way SATA RAID-6 without write caching would be a little faster than a single drive without RAID... but not by very much.
You do take a risk though - as you note - power loss means data loss. You can mitigate this by cache flushing cycles, battery backing your cache, or using SSD or other non-volatile caches.