Will mirroring with an SSD improve read performance?

Solution 1:

In my test with two conventional hard drives, read performance was as good as the fastest hard drive but write performance was as bad as the slowest.

(Note the scales are different.)

Slow Drive - 46 MB/s

Fast Drive - 60 MB/s

Mirrored - 46 MB/s

Solution 2:

(Disclaimer: it's really all theory for me - I've only played with RAID arrays once!)

This sounds like a really bad idea to me - as I understand things you want to have similar performance characteristics for drives mounted in RAID arrays. Maybe you wanted to mix a highspeed 'traditional' drive's continuous read speed with an SSD's low seek times? If so, you might be interested in a hybrid drive (NB it doesn't stripe data, but it does try to intelligently cache).

is Windows smart enough to read from them both and use the data that comes back first?

It doesn't quite work like that: the controller doesn't ask for the same information from both drives and then wait to see which comes back first. If you've got simple mirroring (ie RAID 1) then I'd imagine the controller will ask for 1/n of the total size wanted from each of n drives. For example, if you want to read 1024KB from an array of four drives. I imagine the controller will ask drive 1 for the first 256KB, drive 2 for the second, drive 3 for the third, and drive 4 for the last. The speed-up comes from four similarly performant drives delivering the data in parallel (so you'd expect total time to be quartered, with a little extra for overhead). Now if three of the drives are high performance, and one of the drives is dead slow, the slow drive's going to be the bottle-neck. So if you marry an SSD and a traditional HD you might end up with the worst of both worlds.


Edit:

I agree that in the simplest implementation, the slowest drive will be the bottleneck. However there are some smarter raid implementations out there. I'd like to know if Windows 7's implementation is smart enough to avoid that bottleneck.

I'm not sure what you mean by 'avoid that bottleneck'... what do you expect it to do? The performance gain comes from having drives performing reads in parallel. Now it depends what your usage patterns will be, but if you're performing lots of small reads for example, your traditional HD might never finish seeking (I'm imagining an 'intelligent' controller that doesn't just wait for the HD, but requests the same data from the SSD if it's sitting idle - dunno if that's realistic). So you get normal SSD speeds and thrash your traditional HD. You can also expect your write speeds to be bottle-necked. So what's the point?