In this Quest white paper and on my SSD blog here, I report on how using a FusionIO flash SSD compares with SAS disk for various configurations – datafile, flash cache, temp tablespace and redo log. Of all the options I found that using flash for redo was the least suitable, with virtually no performance benefit:
That being the case, I was surprised to see that Oracle had decided to place Redo logs on flash disk within the database appliance, and also that the latest release of the exadata storage cell software used flash disk to cache redo log writes (Greg Rahn explains it here). I asked around at OOW hoping someone could explain the thinking behind this, but generally I got very little insight.
I thought I better repeat my comparisons between spinning and solid state disk on our Exadata system here at Quest. Maybe the “super capacitor” backed 64M DRAM on each flash chip would provide enough buffering to improve performance. Or maybe I was just completely wrong in my previous tests (though I REALLY don’t think so :-/).
Our Exadata 1/4 rack has a 237GB disk group constructed on top of storage cell flash disk. I described how that is created in this post. I chose 96GB per storage cell in order to allow the software to isolate the grid disks created on flash to 4 24GB FMODs (each cell has 16 FMODs). Our Exadata system has fast SAS spinning disks – 12 per storage cell for a total of 36 disks. Both the SAS and SSD disk groups had normal redundancy.
I ran an identical redo-intensive workload on the system using SAS or SSD diskgroups for the redo logs. Redo logs were 3 groups of 4GB per instance. I ran the workload on it’s own, and as10 separate concurrent sessions.
The results shocked me:
When running at a single level of concurrency, the SSD based ASM redo seemed to be around 4 times slower than the default SAS-based ASM redo. Things got substantially worse as I upped the level of concurrency with SSD being almost 20 times slower. Wow.
I had expected the SAS based redo to win – the SAS ASM disk group has 36 spindles to write to, while the SSD group is (probably) only writing to 12 FMODs. And we know that we don’t expect flash to be as good as SAS disks for sequential writes. But still, the performance delta is remarkable.
I’m yet to see any evidence that putting redo logs on SSD is a good idea, and I keep observing data from my own tests indicating that it is neutral at best and A Very Bad Idea at worse. Is anybody seeing any similar? Does anybody think there’s a valid scenario for flash-based redo?