Matthew wrote:
> On Mon, 3 Mar 2008, Mark Mielke wrote:
>> Has anybody been able to prove to themselves that RAID 0 vs RAID 1+0
>> is faster for these sorts of loads? My understanding is that RAID 1+0
>> *can* reduce latency for reads, but that it relies on random access,
>> whereas RAID 0 performs best for sequential scans? Does PostgreSQL
>> ever do enough random access to make RAID 1+0 shine?
> Theoretically the performance of RAID 0 and RAID 10 should be
> identical for reads, both seeks and throughput, assuming you have a
> sensible readahead and a good controller. For writes, RAID 10 needs to
> write to multiple drives, so is slower. Whether this is true in
> reality is another matter, as all sorts of factors come in, not least
> how good your controller is at managing the arrangement.
I don't think your statement that they should be identical is true -
RAID 1+0 can satisfy and given read from at least two drives. A good
controller can satisfy half the reads from one side of the array, and
half the reads from the other side of the array, where the first set
does not have to wait for the second set, before continuing. To
contrast, sequential reads of a RAID 1+0 system is almost always HALF of
the speed of sequential reads of a RAID 0 system. The hardware
read-ahead on the RAID 1+0 system is being wasted as even if you did
leap from one side of the array to the other, each side ends up
"skipping" the data served by the other side, making any caching
ineffective.
The question I have is not whether RAID 1+0 vs RAID 0 show different
characteristics. I know they do based upon my own analysis. My question
is whether PostgreSQL disk access patterns for certain loads ever
benefit from RAID 1+0, or whether RAID 1+0 is always a bad choice for
performance-only (completely ignore reliability) loads.
Cheers,
mark
--
Mark Mielke <mark@mielke.cc>