Garbage Collection & The TRIM Bug

Like any RAID array of SSDs, there's currently no way to pass TRIM along to member drives. Once data is written to the RAID array it remains tracked and accounted for until the addresses are overwritten. This is the performance over time degradation issue we talked about at the beginning of our SSD coverage a couple of years ago.

SSD controller manufacturers have avoided the TRIM issue by equipping drives with idle garbage collection. The principle behind idle garbage collection is simple. When the SSD controller detects a period of no activity, it can query the file system for available addresses, and then internally mark those addresses for cleaning.

The RevoDrive x2 features idle garbage collection, which for most users should be sufficient to keep the drive running at full speed. There is a problem however. Current SandForce drives have a bug that impacts TRIM (and idle garbage collection). If you fill all available NAND on a SandForce drive by writing incompressible data to all user accessible LBAs and all spare area, the drive will no longer be able to restore itself to full performance via TRIM or any idle garbage collection. This impacts the RevoDrive x2 as well as standard SandForce SSDs.

I'm still in the early stages of measuring the real world impact of this bug and I made SandForce aware of it two weeks ago. At this point I'd simply caution against operating a SandForce drive near capacity filled with primarily incompressible data (e.g. compressed videos, photos). The problem is even more sensitive on a card like the RevoDrive x2 since there's no way to secure erase the drive to fully recover from a reduced performance state.

Expect to hear more about this in the next major SSD article on AnandTech.

Final Words

The RevoDrive x2, like its predecessor, continues to be a very niche product. Both sequential and random performance are measured in the multiple hundreds of megabytes per second. Like all SandForce drives, the RevoDrive x2's performance is highly dependent on the type of data you're moving. Highly compressible data will see speeds as high as 800MB/s, while incompressible data may behave more like it would on a single SSD from Crucial. The beauty of SandForce's technology is you get great performance on traditional desktop workloads, but as always you need to be mindful of what you're storing on the drive when you decide to go with SF.

The reality for OCZ however is there’s no performance benefit to purchasing a RevoDrive x2 over four Vertex 2s and creating your own RAID array. We’re talking about a simple RAID-0 here, something any performance mainstream motherboard supports right out of the box. To make for an even tougher sell, the RevoDrive x2 will likely cost more than four Vertex 2s. The original Revo was supposed to be slightly more affordable than an array of Vertex 2s, but a quick look at Newegg shows us that you pay a $40 premium for the Revo.

 

What OCZ (and other companies) ultimately need to do is introduce a SSD controller with a native PCI Express interface (or something else other than SATA). SandForce’s recent SF-2000 announcement showed us that SATA is an interface that simply can’t keep up with SSD controller evolution. At peak read/write speed of 500MB/s, even 6Gbps SATA is barely enough. It took us years to get to 6Gbps SATA, yet in about one year SandForce will have gone from maxing out 3Gbps SATA on sequential reads to nearing the limits of 6Gbps SATA. 

On the surface, OCZ is offering us what we want - a high performance PCIe SSD. However the RevoDrive needs to offer something more than ease of installation. 

All of the major controller players are hard at work on PCIe based SSDs, but I haven’t been made aware of immediate plans to release any of them. The focus continues to be winning 2.5” SATA SSD market share at this point. 

Random & Sequential Read/Write Performance
Comments Locked

46 Comments

View All Comments

  • Chloiber - Thursday, November 4, 2010 - link

    IMHO the RevoDrives are useless products. You gain nothing except high sequential bandwith, which most users never need.
    In REAL world applications, the CPU limits anyway in high IOPS scenarios. You won't see a big gain (if any) if you move from 1 Vertex 2 to 4 Vertex 2 in typical situations.
  • jonup - Thursday, November 4, 2010 - link

    Anand, this is not directly related with the article, but when do you expect the SSD prices to take a big hit? With the next generation of drives around the corner and talks of increased flash manufacturing capacities do you think it is reasonable to by and SSD (regardless of the interface) now simply from a $/GB prospective?

    Thanks,
    J
  • theagentsmith - Thursday, November 4, 2010 - link

    Hey Anand
    could you shed light on a annoying bug that's plaguing several but not all owners of Sandforce based SSDs?
    It happens when there is not a lot of I/O activity, like when idle or light usage. The drive disappears and you see all the programs opened failing one at a time, until a couple of minutes later windows gives up with a BSOD. As the drive disappeared the kernel can't even write a memory dump, and if you press reset the drive isn't recognized by the BIOS, you have to cycle power to see it working again.
    There is also a resume from sleep bug that however it's tolerable as you can use hibernation instead of sleep.
    Here there is a topic on Corsair forums about this, they just released a 2.0 firmware but there is no change log and of course no word from Sandforce.
    http://forum.corsair.com/forums/showthread.php?t=8...
  • mark53916 - Thursday, November 4, 2010 - link

    How do this and other SSDs handle the container files of encrypted
    and other virtual disks?

    Typically, for best performance the container files should be stored
    "densely" on the underlying device, but the space is always in
    use.
  • Shadowmaster625 - Thursday, November 4, 2010 - link

    It is not on companies like OCZ to release a faster SSD controller. As I been saying for ages now, it is up to AMD/Intel to release an SSD controller integrated directly into the CPU. It makes as much sense as having an integrated memory controller. It's actually pretty much the same exact thing, except the memory is nonvolatile. It should be in the same form factor to reduce costs (keyed differently of course). ie, a 64GB SSD DIMM would cost half of a 64GB SSD. Perhaps even less.
  • FunBunny2 - Thursday, November 4, 2010 - link

    The maths of SSD controllers aren't yet settled, which is why SandForce is different from Intel which is different from Indilinx and so forth. If the SSD controller is in the CPU case, you're stuck with it, unless you buy a new CPU. Hmmm. Frequent, planned, obsolescence; may be Intel will do it, then.
  • larijoona - Thursday, November 4, 2010 - link

    Hello,

    I'm also intrested in seeing some benchmarks of virtual pc performance run from ssd!
  • jhbodle - Thursday, November 4, 2010 - link

    I am not aware of any motherboard-integrated RAID controller that can handle the bandwidth of these 4 Sandforce SSDs. I use 3 X-25E's in RAID0 on the ICH10R, generally regarded as the best integrated RAID controller, and it is maxed at 660MB/sec.

    So I like this card and am pleased that companies such as OCZ are working on this kind of thing!
  • Chloiber - Thursday, November 4, 2010 - link

    Yep. ICH10R gets to 500-650MB/s - never seen more.
    It may be, that the ICH10R is connected via a 2GB/s-Bus or whatever, but that's theory. Or, the controller itself cannot handle more (which is a reasonable explanation - if you look at controllers from areca, they also max out at 1-2GB/s - and they are way more expensive).
  • sonofgodfrey - Thursday, November 4, 2010 - link

    The LSI SAS controllers (which are on some server boards) can easily hit 1GB/s with 4 SSDs. Did this with the first generation Intel X-25M drives.

Log in

Don't have an account? Sign up now