My 2 cents is on NetApp to mitigate the issues with this very difficult optimisation problem using some new/improved cleverness around SSD devices. Something perhaps that really works as a write cache, at least partially, in conjunction with the log (NVRAM). We have FlashPool now, and that's good, but does a FlashPool really do anything in real life to help with random writes? (or rather random re-writes)?
There is no such thing as a "random write" or "random re-write", at least not at the physical disk block level.
Remember that netapp ALWAYS writes to fresh, unallocated blocks, preferably to entire raid stripes. A filer never overwrites data "in place". If netapp did overwrite in place, then CPs (consistency points) would not be possible and neither would snapshots (as implemented by netapp). Netapp maintains a CP on disk at all times. This would not be possible if blocks in the current CP were modified in place. Netapp writes a new CP to fresh blocks and when finished, it "steps off" the old CP and onto the new CP. Then it frees any block in the old CP that has been replaced by a fresh block in the new CP (provided the old block is not frozen in a snapshot).
For example, if you logically overwrite a database file block, in reality the filer writes the new data to a fresh block and maps the new block into the database file in place of the old block. This happens when the filer writes the next CP to disk.
A filer lets write requests accumulate for a while before writing them to disk in a CP. This allows the filer to intelligently schedule a burst of efficient writes to whatever free blocks it chooses to use. (WAFL means "Write Anywhere File Layout".) If possible the filer writes entire raid stripes, so no reads are necessary to recalculate parity, and so that the writes are scattered across spindles.
I admit that writing an entire raid stripe requires all the data blocks in the stripe to be free. This could be a tall order on a busy aggregate that is nearly full.
Random reads are a completely different story.
Steve Losen scl@virginia.edu phone: 434-924-0640
University of Virginia ITC Unix Support