On Wednesday I attended a training put on by Fusion IO. The training is a pre-cursor to a future certification program for Fusion Cards. It was the first time the training was being given so in a way we were beta testing the training program. I have been testing the cards for about a year now and have had them running in Production servers for about 6 months. So I had a good working knowledge for the cards and how to use them but I was eager to learn some more of the internals of how the cards worked and some of the things I should look for when working with them.
The training did not disappoint. As I mentioned this was the first time anyone was going through the training so we had minor speed bumps but our Instructor Thom did an excellent job presenting and really showed that he knew his stuff and was passionate about the product. I love to see presenters that really enjoy what they are talking about because it makes for a great presentation. I don’t have all my notes from the event yet summarized but I did want to get some information out that I learned at the session.
Fusion Cards come in 2 flavors. SLC and MLC, the NAND chips specifically come in SLC and MLC flavors.
SLC = Single Level Cell – 2 states per memory cell
MLC = Multi Level Cell — 4 states per memory cell
The primary differences between the chips are speed, storage and Life of the card. The SLC memory cell has only 2 states Empty and full. This means that it has a better performance than MLC because it can conserve energy when managing the electrical charge during operations on the memory cell. MLC has 4 states empty, 1/3, 2/3 and full. MLC must expand more energy to maintain the states of the data causing it to have slower performance.
MLC does have the advantage when it comes to Storage. Being a Multi-level cell it means they can have more storage capacity. For the Fusion line this usually means the 320 and 640 cards are the MLC cards.
The MLC card will wear out quicker than an SLC card will because it is expending more of its energy to get the state of the data.
So let’s look at the pro/con here
- Better performance/lower Latency
- Longer Card life
SLC – Cons
- Smaller size
MLC – Pros
- Large size
MLC – Cons
- Slower performance more latency
- Less Card life
Now let’s put some things in perspective. When I say lower latency I’m talking about microseconds. We didn’t get quoted a number on the difference but I do have plans to re-run my original fusion tests with an MLC card compared to the SLC card I originally used (in these tests) . Basically if you want the max performance your best bet Is the SLC cards.
For storage you’re talking about Double or triple the size for MLC cards. Again if you need the extra storage you need to look for the MLC cards to cover your needs.
For the life of the cards it will really depend on how much they are used and how frequently they are written to. Both SLC and MLC are rated in the 5+ years range before they even start to degrade in most normal applications. I know I have hard drives that have gone over 5 years of use but I know many more hard drives that haven’t made it over 3 years of use.
An MLC card is still going to squash any conventional spinning media you have in performance numbers. The question you should ask when you’re looking to buy is the same question you have for hard drives. What ratio of performance to storage do I need and I can afford for the project? When someone asks me what to buy with standard disks I always suggest to buy the smallest fastest disks and as many of them as you can if you have performance needs for the disks. If you need space and can suffer some performance then buy the larger disks and get fewer of them. That still holds true here. The difference when you look at the Fusion drive is that an MLC card can do much more than what a normal set of drives can do. So even at its worst performance it’s better than the standard drives. Another important thing I learned at the training was keeping up to date on the drivers. The new 2.0 driver from FusionIO increases the speed of the cards . I need to get upgrading and re-running my tests.