Slashdot Mirror


Phase Change Memory vs. Storage As We Know It

storagedude writes "Access to data isn't keeping pace with advances in CPU and memory, creating an I/O bottleneck that threatens to make data storage irrelevant. The author sees phase change memory as a technology that could unseat storage networks. From the article: 'While years away, PCM has the potential to move data storage and storage networks from the center of data centers to the periphery. I/O would only have to be conducted at the start and end of the day, with data parked in memory while applications are running. In short, disk becomes the new tape."

17 of 130 comments (clear)

  1. Re:CD-R? by QuoteMstr · · Score: 4, Insightful

    Phase change memory is nothing like A CD-R. This stuff has the density of a hard drive, and the speed is very close to DRAM. It's non-volatile to boot. It's a serious contender to become universal memory.

    Imagine how different operating systems and programs would be if we could make RAM non-volatile.

  2. Re:CD-R? by NeuralAbyss · · Score: 3, Interesting

    Non-volatile? Like all the other "non-volatile RAM, instant-on" technologies that have gone before? MRAM, SRAM, Holographic storage... and now phase-change memory.

    I've heard this marketing bullshit before. Call me when it's not vapourware.

  3. Why the vapourware tag? by Areyoukiddingme · · Score: 4, Insightful

    How soon we forget. The article is speculative, sure, but the hardware is not only real, it's in mass production by Samsung: http://hardware.slashdot.org/article.pl?sid=09/09/28/1959212

    Just looking at the numbers, the article is a bit overblown. Phase change memory will first be a good replacement for flash memory, not DRAM. It's still considerably slower than DRAM. But it eliminates the erasable-by-page-only problem that has plagued SSDs, especially Intel SSDs, and the article does mention SSDs as a bright spot in the storage landscape. PCM should make serious inroads into SSDs very quickly because manufacturers can eliminate a whole blob of difficult code. With Samsung's manufacturing muscle behind it, prices per megabyte should be reasonable right out of the gate and as Samsung gets better at it, prices should plummet even faster than flash memory did.

    The I/O path between storage and the CPU will get an upgrade, and it could very well be driven by PCM. Flash memory SSDs are already very fast and PCM is claimed to be 4X faster. That saturates the existing I/O paths (barring 16-lane PCIe cards sitting next to the video card in an identical slot). Magnetic hard drives haven't come anywhere close to saturation. Development concentrated for a decade (or two?) on increasing capacity, for which we are thankful, but the successes in capacity development have outrun improvements in I/O speed. In turn, that meant that video cards were the driver behind I/O development, not storage. Now that there's a storage tech in the same throughput class as a video card, I expect there to be a great deal of I/O standards development to deal with it.

    But hard drives == tape? Not for a long long time. The development concentration on increasing capacity will pay off for many years to come. PCM arrays with capacities matching modern hard drives (2 TB in a 3.5" half height case. Unreal!) are undoubtedly a long ways off.

    Hopefully there are no lurking patent trolls under the PCM bridge...

  4. Re:CD-R? by mangobrain · · Score: 3, Insightful

    The speed of PCM would need to closely match - or exceed - the speed of DRAM for people to adopt it as a replacement, so I doubt the model would quite be one of non-volatile RAM. I imagine it would be more like having a ridiculously fast SSD.

    Given the propensity of programs to corrupt and/or leak memory, I'm not sure I'd want my system memory to be non-volatile. The dividing line between system memory and mass storage allows for robustness against errors which, without the ability to reboot, wipe the slate clean and load up the last saved data, might end up being catastrophic. It'd be nice if no program ever had such errors, but this is reality. ;)

    If nothing else, programs will always need the ability to serialise data into platform-agnostic formats, unless you expect the world to standardise on one platform or stop sharing data.

  5. The 70's called. They want their I/O methods back. by fahrbot-bot · · Score: 4, Informative
    From TFA:

    There is no method to provide hints about file usage; for example, you might want to have a hint that says the file will be read sequentially, or a hint that a file might be over written. There are lots of possible hints, but there is no standard way of providing file hints...

    Ya, we had that back in the stone-age and Multics would have been poster-child for this type of thinking, but it was a *bitch* and made portability problematic. I think VMS has some of this type of capability with their Files 11 support - any VMS people care to comment. Unix (and most current OS) sees everything as a stream of bytes, in most cases, and this is much simpler.

    An OS cannot be everything to all people all the time...

    --
    It must have been something you assimilated. . . .
  6. Numonyx will probably make it happen by AllynM · · Score: 4, Informative

    Numonyx announced some good advances in PCM a few months back:

    http://www.pcper.com/comments.php?nid=7930

    Allyn Malventano
    Storage Editor, PC Perspective

    --
    this sig was brought to you by the letter /.
  7. This "author' is pretty much irrelevant by Zero__Kelvin · · Score: 4, Insightful

    "I will assume that this translates to performance (which it does not) ..."

    I was tempted to stop reading right there, but I kept reading. While his point about POSIX improvements is not bad, the rest of the article is ridiculous. It essentially amounts to: Imagine if we had pretty much exactly what we have today, but we used different words to describe the components of the system! We already have slower external storage (Networked drives / SANs, local hard disk), and incremental means of making data available locally more quickly by degrees (Local Memory, L2 Cache, L1 Cache, etc.) We already get that at the expense of its ability to be accessed by other CPUs a further distance away. It turns out I probably should have stopped reading when I first got the feeling I should when reading the first sentence in the article: "Data storage has become the weak link in enterprise applications, and without a concerted effort on the part of storage vendors, the technology is in danger of becoming irrelevant." I can't wait to answer with that one next time and watch jaws drop:

    Boss: Where and how are we storing our database, how are do we ensure database availability, and how are we handling backups?
    me: You're behind the times Boss. That is now irrelevant!

    Yeah. That's the ticket ...

    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
  8. Re:We're almost there already by Paradigm_Complex · · Score: 4, Interesting

    When you can pick up 4GB of RAM memory for a song, why not load the whole OS into memory?

    For what it's worth, you can do this with most Linux distros if you know what you're doing. Linux is pretty well designed to act from a ramdisk - you can set it up to copy the system files into RAM on boot and continue from there all in RAM. I've been doing this on my Debian (stable) boxes when I realized I couldn't afford a decent SSD and wanted a super-responsive system. Firefox (well, Iceweasel) starts cold in about two seconds on an eeepc when set up this way, and it starts cold virtually instantly on my C2D box. In fact, everything seems instant on my C2D box. It's really snazzy.

    As long as you don't suffer a system crash, you can unload it back to disk when you're done.

    Depending on what you're doing, even that may not be an issue. If you're doing massive database stuff, then yes. However, if your disk I/O isn't all heavy you can set a daemon up to automatically mirror changes made in the RAMdisk to the "hard" copy. From your POV everything is instant, but any crash will only result in the loss of data from however far behind the harddrive copy is lagging. Personally, what little I do need saved is simply text files - my notes in class, my homework, etc, and so I can just write to a partition on the harddrive that isn't loaded to RAM. It doesn't suffer at all from the harddrive I/O - I can't really type faster then a harddrive can write.

    tl;dr: It's perfectly feasible for (some) people to do as you've described, and it works quite nicely. It's not really necessary to wait for this perpetually will-be-released-in-5-to-10-years technology, it's available today.

    --
    "A witty saying proves nothing." - Voltaire
  9. Re:Names by Nikker · · Score: 3, Funny

    You are a god amongst men but you waste all your knowledge upon this tribe.

    --
    A loop, by its nature, continues. If that didn't make sense, start reading this sentence again.
  10. Re:The 70's called. They want their I/O methods ba by Guy+Harris · · Score: 4, Informative

    From TFA:

    There is no method to provide hints about file usage; for example, you might want to have a hint that says the file will be read sequentially, or a hint that a file might be over written. There are lots of possible hints, but there is no standard way of providing file hints...

    Ya, we had that back in the stone-age and Multics would have been poster-child for this type of thinking, but it was a *bitch* and made portability problematic.

    No, Multics would have been the poster child for "there's no I/O, there's just paging" - file system I/O was done in Multics by mapping the file into your address space and referring to it as if it were memory. ("Multi-segment files" were just directories with a bunch of real files in them, each no larger than the maximum size of a segment. I/O was done through read/write calls, but those were implemented by mapping the file, or the segments of a multi-segment file, into the address space and copying to/from the mapped segment.)

    I think VMS has some of this type of capability with their Files 11 support - any VMS people care to comment. Unix (and most current OS) sees everything as a stream of bytes, in most cases, and this is much simpler.

    "Seeing everything as a stream of bytes" is orthogonal to "a hint that the file will be read sequentially". See, for example, fadvise() in Linux, or some of the FILE_FLAG_ options in CreateFile() in Windows (Windows being another OS that shows a file as a seekable stream of bytes).

  11. Re:We're almost there already by mysidia · · Score: 3, Interesting

    Power failure happens.

    That's what journaling is for.

    Load the system image into RAM at boot from the "image source".

    Journal changes to user datafiles.

    When a certain number of transactions have occured, commit them back to the main disk.

    If the system crashes... load the "boot volume" back up, replay the journal.

    No need to journal changes to the "system files" file system (that isn't supposed to change anyways). If a system update is to be applied, the signed update package gets loaded into the journalling area, and rolled into the main image at system boot.

    Another possibility would be to borrow a technology from RAID controller manufacturers... and have a battery backup for the RAM in the form of a NiMH battery pack. If power is lost, upon system boot, the RAM image will be restored to the same state it was in as of the unexpected shutdown/crash.

    Avoid clearing the RAM region used for file storage at boot also .

  12. Not really by oGMo · · Score: 4, Insightful

    Are you retarded? You really think nothing would be different with non volatile RAM? EVERYTHING would be so much faster.

    First off most non-volatile RAM isn't nearly as fast as DRAM. So let's assume you mean "what if everything were in DRAM, and that was non-volatile, it would be so much faster". Well, again not really. Faster, but there are far more bottlenecks than just disk I/O. You can go buy ramdisks now, or you could make them in your current RAM, copy the OS there, and run off that after you boot. Go try it. Firefox isn't going to render quicker, your mail isn't going to load any faster, and youtube isn't going to lag any less. If you work with large photos, most software is already going to exhaust your RAM, so (given you have sufficient quantities) you're already not losing anything.

    In short, because of modern hard disk and OS caching, the ridiculous quantities of RAM these days, and a current reliance on the network for most tasks, a pure ramdisk system isn't likely to be that much better for most people. If you put a large database or maybe compile there, you would see improvement. But that's not common for most people.

    --

    Don't think of it as a flame---it's more like an argument that does 3d6 fire damage

    1. Re:Not really by StarsAreAlsoFire · · Score: 5, Interesting

      "Faster, but there are far more bottlenecks than just disk I/O."

      Generally, I disagree with the statement as written. I would say that there are other LIMITS. Not bottlenecks. Although for something like video encoding you could easily turn things around and say 'Look! Your hard-drive is bottlenecked by your encoder!'. Yeah yeah. So I guess I agree more than I want to admit.

      Almost by definition, there's always going to be a bottleneck somewhere in your system: the chances of ALL of your PC's components working at *exactly* 100% of their capacity is pretty close to zero. And that's for a particular task. Randomize the task and it all goes to hell. So the question we are discussing is really 'If I remove bottleneck n, how many seconds does it shave of the time to run task x?', averaged over a set of 'common' tasks. But if we made our external drives all as fast as DRAM (or whatever. as above), there would be no other single bottleneck left in the system that you could remove which would give you even a handful of percentage points of improvement. Except maybe un-installing Outlook. Or banning Subversion repositories from your enterprise environment -_-.

      For most components in a PC, you have to square the performance to see a significant performance difference, all else being held equal. Tasks that lag noticeably, and that are not dramatically improved by a simple doubling of disk performance, ( 3.5ms seek, 150MB sustained transfer ) are pretty rare. Video encoding, for instance. Certainly getting more common. But with a good video card and a cheap harddrive, you're getting pretty close if not exceeding maximum write speeds on the drive while doing a CUDA rip.

      I think that if Microsoft had released a little monitor that displayed the cumulative time spent blocked on [Disk|CPU|Graphics|Memory|Network] (a column in Task Manager, for instance. Hint, hint) back in Windows 95, spinning disks would be considered quaint anachronisms by now. Look at how much gamers spend on video cards, for almost no benefit.

      Minute 2 of the Samsung SSD advert: http://www.youtube.com/watch?v=96dWOEa4Djs is pretty interesting, if you haven't seen it yet.

    2. Re:Not really by mindstrm · · Score: 3, Informative

      Nonsense.

      Certainly "everything" won't be much faster - but we're always after faster storage. I/O is a very common bottleneck. Sticking everything in RAM will make a big difference to a multi-use computer.

      IT really depends on the use-case - given enough ram, and a good caching algorithm, and a simple use-case, maybe it won't help once the cache is primed (say serving static content from a fast webserver). Everything ends up in RAM anyway.

      But running a system from a fast SSD, or even from a ramdisk, as you say, leads to significant improvements in usability for general-purpose-ADHD-computer use. Apps load instantly.

      To go back to the SSD example - more and more people are finding an SSD for a system drive makes things significantly faster, and ram-backed drives DO make databases much faster.

      Sure, it won't make the network faster - and if everyone actually bought *enough* ram for the task at hand, caching would take care of it, but for some reason, you know, most poeple don't.

  13. Re:Plastique explosives plus hard drive by v1 · · Score: 3, Funny

    or just toss your HD in a forge furnace. You should get two phase changes.

    --
    I work for the Department of Redundancy Department.
  14. Forgetting the lessons of SANs? by HockeyPuck · · Score: 4, Interesting

    Maybe these guys ought to ask someone that was around in the days BEFORE there were SANs. Managing storage back then absolutely sucked. Every server had it's own internal storage with it's own raid controller OR had to be within 9m (the max distance of LVD SCSI) of a storage array.

    There was no standardization, every OS has it's own volume managers, firmware updates, patches etc etc etc. Plus compare the number of management points when using a SAN vs internal storage. An enterprise would have thousands of servers connecting through a handful of SAN switches to a handful of arrays. Server admins have more important things to do than replace dead hard drives.

    Want to replace a hot spare on a server, what a pain. As you had to understand the volume manager or unique raid controller in that specific server. I personally like how my arrays 'call home' and an HDS/EMC engineer shows up with a new drive, replaces the failed one and walks out the door, without me having to do anything about it.

    Two words: Low Utilization. You'd buy an HP server with two 36GB drives and the OS+APP+data would only require 10GB of space. So you'd have this land locked storage all over the place.

    Moving the storage to the edge? Even if you replace spinning platters with solid state, putting all the data on the edge is a 'bad thing.'

    "But Google does it!"

    Maybe so, but then again they don't run their enterprise based upon Oracle, Exchange, SAP, CIFS/NFS based home directories etc like almost all other enterprises do.

  15. The SAN argument by symbolset · · Score: 4, Interesting

    The SAN argument is that your storage is so precious it must not be stranded. If you're paying $50K/TB with drives, controllers, FC switches, service, software, support, installation and all that jazz then that's absolutely true. If you're doing something like OpenFiler clusters on BackBlaze 90TB 5U Storage Pods for $90/TB and 720 TB/rack you have a different point of view. As for somebody showing up to replace a drive, I think I could ask Jimmy to put his jacket on and shuffle down to the server room to swap out a few failed drives every couple months - that's what hot and cold spares are for and he's just geeking on MyFace anyway. Low utilization? Use as much or as little as you like - at $90/TB we can afford to buy more. We can afford to overbuy our storage. We can afford to mirror our storage and back it up too. In practice the storage costs less than the meeting where we talk about where to put it or the guy that fills it. If you want to pay for the first tier OEM, it's available but costs 10x as much because first tier OEMs also sell SANs.

    Openfiler does CIFS/NFS and offers iSCSI shared storage for Oracle, Exchange and SAP. If you need support, they offer it. OpenFiler is nowhere near the only option for this. If you want to pay license fees you could also just run Windows Server clustered. There are BSD options and others as well. Solaris and Open Solaris are well spoken of, and ZFS is popular, though there are some tradeoffs there. Nexenta is gaining ground. There's also Lustre, which HP uses in its large capacity filers. Since you're building your own solution you can use as much RAM for cache as you like - modern dual socket servers go up to 192GB per node but 48GB is the sweet spot.

    Now that we've moved redundancy into the software and performance into the local storage architecture, moving storage to the edge is exactly what we want to do: put it where you need it and if you need a copy for data mining then mirror it to the mining storage cluster. We still need some good dedicated fiber links to do multisite synchronous replication for HA, but that's true of SAN solutions also. We're about 20 years past when we should have ubiquitous metro fiber connections, and that's annoying. Right now without the metro fiber the best solution is to use application redundancy: putting a database cluster member server in the DR site with local shared storage.

    Oh, and if you need a lot of IOPS then you choose the right motherboard and splurge on the 6TB of PCIe attached solid state storage per BackBlaze pod for over a million IOPs over 10Gig E. If you need high IOPS and big storage you can use adaptor brackets and 2.5" SSDs or mix in an array of The Collossus, though you're reaching for a $6K/TB price point there and cutting density in half but then the SSD performance SAN has an equal multiple and some serious capacity problems. If you go with the SSD drives you would want to cut down the SAS expanders to five drives per 4x SAS link because those bad boys can almost saturate a 3Gbps link while normal consumer SATA drives you can multiply 3:1.

    If you're more compute focused then a BackBlaze node with fewer drives and a dual-quad motherboard with 4 GPGPUs is a better answer. At the high end you're paying almost as much for the network switches as you are for the media. If you're into the multipath SAS thing then buy 2x the controllers and buy the right backplanes for that - but

    --
    Help stamp out iliturcy.