* Posts by David Flynn

1 publicly visible post • joined 24 Sep 2008

Is flash a cache or pretend disk drive?

David Flynn
Flame

Good point

Anton,

You are absolutely correct, putting NAND into disk drive form factors and protocols is just a short term, time to market thing, and integrating NAND correctly involves more work in building OS specific software drivers.

One interesting thing, though, is that when OS's were originally built the relative performance of disks to CPU was such that things like virtual memory swap and 512 byte sector sizes actually made sense, and worked well.

Luckily, these vestiges of the good-ole-days (when disks weren't left so far behind by Moore's laws) are still around, because they actually make a sense again now.

With NAND SSD's, the relative performance to CPU's is pretty much where it was 20-25 years ago with HDD's. This means demand paging is actually viable - without modifying OS's. This makes for terabyte-scale virtual memory systems that perform amazingly well. After all, demand fetching 100,000 pages per second is a whole lot better than getting just 200. Now you can really use that 64 bit addressing!

512 byte IO makes sense when one can get 160,000 of those per second, vs. just 100,000 4K packets . If only 512 bytes are needed, that's a 60% performance benefit (thank goodness converting OS's and FS's to 4K sectors has proved too difficult - it would just need to be reversed now).

In other words, you'd be surprised how well things just work when you have 100,000 4K read IOPS, 70,000 4K write IOPS and 800 MB/s bandwidth to spare - and from each drive, thanks to near linear scaling.

It's being directly on the PCIe bus that makes scaling efficient. If one SSD can run over top of the fastest RAID controller out there, you'd have to put in a RAID controller per SSD. That's in essence what we've done by integrating the RAID controller with the SSD and put the whole thing right in where the RAID controller would have gone.

Net result, 6 GBytes per second of bandwidth with just 8 ioDrives in a server, and more IOPS than the CPU's can handle - for under $18K (for a total of 640GBytes of capacity, 2.5TB with the larger modules).

6 GBytes per second is a significant fraction of the raw memory bandwidth. You won't get anything close to this from a DRAM appliance or disk array accessed through a glass straw. If all you want is the performance you'd get from one of those, then just one ioDrive in place of the FibreChannel adapter will do.

And, no external box's to manage, it's just another disks drive to the OS, just faster.

David Flynn

CTO Fusion-io