Solid-state drives: when external memory becomes as fast as internal memory

Steve Jobs just introduced the MacBook Air. The MacBook Air is thin and light, but what matters to me is that it uses a solid-state drive:

Using technology similar to that in the iPod nano and other Flash-based products, MacBook Air introduces a solid-state drive. This drive has no moving parts and can access data more quickly than standard hard drives, so you’ll enjoy a boost in performance when starting up your computer and opening files and applications. In addition, solid-state drives offer greater durability and improved resistance to data loss in the event of an accidental drop.

This follows recent announcements by storage vendors such as IBM and EMC who have started offering solid-state drives for enterprise needs.

Solid-state drives are compelling:

  • Solid-state drives have access speeds about 250 times faster.
  • Solid-state drives use less power (over 30% less).
  • Solid-state drives are silent.
  • Solid-state drives are typically much smaller.
  • Solid-state drives are between 15 to 20 times more expensive, but prices are coming down.

I estimate that typical RAM is now only 10 or 20 times faster to access than a solid-state drive. These new drives lower the gap between internal and external memory.

So, external memory becomes internal memory? Maybe not. For example, solid-state drives tend to have poor random write performance. You better write the data sequentially.

Disclaimer. I wish I was an expert on solid-state drives, but I am not. Please correct me if I am wrong.

Published by

Daniel Lemire

A computer science professor at the Université du Québec (TELUQ).

6 thoughts on “Solid-state drives: when external memory becomes as fast as internal memory”

  1. The biggest barrier to entry is the write speed.

    To date most of the SSDs we’ve looked at have lied about their write speed by saying the drive can do 100MB/s but when you benchmark it can only do about 20MB/s write throughput. It can still do 100MB/s reads but that’s not too great if you’re 100% write bound like we are.

    We’re going to be getting some to play with shortly and I’m very excited by this 🙂

  2. Thanks for the comment Kevin….

    Are those sequential writes… as in… you need to dump one large contiguous stream of data… or is it random access like building an external memory hash table?

    SSD are apparently very bad at random writes… but they do ok at sequential writes… because of their data block structure…

  3. Dan,

    Well, *some* of the SSDs are bad at random writes.

    HDDs are perfectly good at sequential writes. The HDDs we’re using now are GREAT at them. Nearly 100MB/s.

    More modern SSDs can do fine at random writes. The mtron SSDs can so fully random 4k writes @ 80MB/s.

    In fact, the prime reason we’re going with SSD is that they can do random writes at this speed.

    In fact, they’re great at random reads too.

    You can do fully random 4k reads at up to 100MB/s 🙂

    In fact, you can read the whole drive, randomly, in 32 seconds 🙂

  4. Thanks, for the comments.

    > Well, *some* of the SSDs are bad at random writes.

    My impression was that the current breed of high-capacity SSDs are bad at random writes.

    > HDDs are perfectly good at sequential writes. The HDDs we’re using now are GREAT at them. Nearly 100MB/s.
    > More modern SSDs can do fine at random writes. The mtron SSDs can so fully random 4k writes @ 80MB/s.

    Wow. I find it odd that you have nearly no penalty for the random writes. What is the trade-off? Cost? Capacity?

    > In fact, they’re great at random reads too.
    > You can do fully random 4k reads at up to 100MB/s 🙂
    > In fact, you can read the whole drive, randomly, in 32 seconds 🙂

    So the drive has a 4 GB capacity?

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax