The server world still waits for DDR4, the next generation of dynamic memory, to be ready for prime time. In the meantime, a new set of memory boards from Viking is looking to squeeze more performance out of servers not by providing faster memory, but by making it safer to keep more in memory and less on disk or SSD. Viking Technology has begun supplying dual in-line memory modules that combine DDR3 dynamic memory with NAND flash memory to create non-volatile RAM for servers and storage arrays—modules that don't lose their memory when the systems they're in lose power or shut down.

The ArxCis-NV DIMM, which Viking demonstrated at the Storage Networking Industry Association's SNW Spring conference in Orlando this week, plugs into standard DIMM memory slots in servers and RAID controller cards. Viking isn't the only player in the non-volatile DIMM game—Micron Technology and AgigA Tech announced their own NVDIMM effort in November—but they're first to market. The modules shipping now to a select group of server manufacturers have 4GB of dynamic RAM and 8GB of NAND memory. Modules with double those figures are planned for later in the year, and modules with 16GB of DRAM and 32GB of NAND are in the works for next year.

The ArxCis can be plugged into existing servers and RAID controllers today as a substitute for battery backed-up (BBU) memory modules. They are even equipped with batteries supercapacitors to power a last-gasp write to NAND memory in the event of a power outage. But the ArxCis is more than a better backup in the event of system failure. Viking's non-volatile DIMMs are primarily aimed at big in-memory computing tasks, such as high-speed in-memory transactional database systems and indices such as those used in search engines and other "hyper-scale" computing applications. Facebook's "Unicorn" search engine system, for example, keeps massive indices in memory to allow for real-time response to user queries, as does the "type-ahead" feature in Google's search.

Viking's executives also claim that non-volatile DIMM cards can be paired with solid-state disks to extend the life and performance of the disks. Since DDR memory is much faster than the NAND memory used by SSDs, and it doesn't have the limited number of "writes" that flash memory has (see Lee Hutchinson's look at SSDs for an explanation of how SSDs "wear out"). This keeps more data in RAM for constant writing, preventing the "amplification" effect of SSD storage from being magnified and driving drives toward end-of-life that much faster. Since data gets written to the NAND memory on the DIMM only when the module detects a drop in voltage, the modules can last up to 10 years before the NAND memory "rots" and is unwritable, according to Viking's estimates.

While the cost of NVDIMM memory puts it out of reach of every-day applications, the DIMMs will cost "a few hundred dollars each," Viking Vice President of Marketing Adrian Proctor told ComputerWorld. The entry of Micron and others into the NVDIMM market could eventually drive costs down and make them more practical in consumer devices, making "instant on" computing that much more instant.

And how the hell do you deal with the situations where you -WANT- to purge the RAM contents? Admittedly that shouldn't happen often in a server envirornment, but still, viruses and glitches happen. Do you have to de-rack and crack the case and pull plugs, or is there some kind of a switch? or, did they even consider that?

Perhaps not an issue for servers kept in secure areas like data centers, but cold boot attacks just got a lot easier. I wonder how cryptographic software will need to be revised to mitigate the increased risk? What about when nonvolatile memory becomes inexpensive enough for consumer hardware?

Could volatile memory be considered a feature and not a shortcoming someday?

Intriguing, but what about OS and application support? Having the contents of memory preserved is sweet, but pretty useless if the machine reboots when power is restored. You'd also need some specific support for the cache hierarchy. Either the OS would have to have a chance to enter a sleep or hibernation state, or the app would need some way of dealing with in-memory data in a transactional manner that didn't make assumptions about register state or cache coherency.

I'm having a hard time seeing the value here as well. I guess the last gasp thing makes sense, sort of. I assume you would need some kind of special software feature to enable your database to read that last bit of stuff when the server recovers since the rest of the server is in a fresh state. Without significant operating system and software integration, this seems like a sort of worthless thing.

That's neat to store the stuff in RAM through a reboot or power loss, but generally the stuff in RAM is relatively worthless past shutdown/power failure. Often times servers that would use these kind of high end features are in a cluster or HA pair setup and by the time a single failed server comes back online, the 'world' has changed on any other surviving servers, so the stuff left in this cache would be worthless or unreliable at that point.

Additionally, disk storage systems tend to already have these kind of features so it seems like putting another layer of complexity over a solved problem.

I can see this being aimed at something like RAID cache rather than RAM. I think most RAID cache batteries only provide a few days of backup. Have to wonder how often there is something that is critical enough to have every last bit preserved and would be allowed to stay out of commission for more than a day or two.

I'm having a hard time seeing the value here as well. I guess the last gasp thing makes sense, sort of. I assume you would need some kind of special software feature to enable your database to read that last bit of stuff when the server recovers since the rest of the server is in a fresh state. Without significant operating system and software integration, this seems like a sort of worthless thing.

That's neat to store the stuff in RAM through a reboot or power loss, but generally the stuff in RAM is relatively worthless past shutdown/power failure. Often times servers that would use these kind of high end features are in a cluster or HA pair setup and by the time a single failed server comes back online, the 'world' has changed on any other surviving servers, so the stuff left in this cache would be worthless or unreliable at that point.

Additionally, disk storage systems tend to already have these kind of features so it seems like putting another layer of complexity over a solved problem.

I think the initial use cases will be implementing these power loss features in the disk storage systems. This basically provides a large DRAM cache for a storage system without the system level complexities of having to manage power loss states. As long as the storage controller is flushed to the DRAM, the DIMM will take care of keeping itself coherent for when the power comes back.

I'm confused. Is there an epidemic of servers losing power that this product addresses? Why do these servers not have UPSs and generators?

Actually, Yes. Datacenter Batteries might buy you a few minutes or maybe even an hour. And there are plenty of circumstances where backup generators fail at very prominent sites. I can think of one in London I was involved in.

I also think this has great implications for laptops as well. Think instant on, infinite suspend, etc.

I can see this being aimed at something like RAID cache rather than RAM. I think most RAID cache batteries only provide a few days of backup. Have to wonder how often there is something that is critical enough to have every last bit preserved and would be allowed to stay out of commission for more than a day or two.

They already offer this on RAID controllers. Effectively it's battery-backed up memory + flash memory. When power fails, it writes the contents of the RAM into the (very, very slow) flash memory. It keeps the RAM battery backed up, so if you power back on within a reasonable time frame it will then commit its writes normally

This can save your file system from corruption that could save, say, a 50GB file even though it would only be a small amount of flash.

I really wanted to get hold of one of those Gigabyte iRam things from a few years back. That always struck me as being a good product idea, especially in the days before SSDs.

It was a battery-backed PCI card (though had no interaction with the PCI bus at all, just using it for power) which had 4 memory slots and a SATA socket. The only time the battery is used is when there is no power to the system at all, so power cable disconnected or power cut. And battery life was quoted at about 18hrs.

But it was only SATA I and max 4GB memory.

If there was a device which let you hook up 4x 8GB DIMMs to a SATA 3 interface then I'd be interested in running some MySQL/Maria benchmarks on that thing. In fact it would be a shame to have such fast storage limited by the SATA interface but PCI flash vendors tend to charge £££ for that technology.

I'd think when it comes to thinks like encyption what we are likely to see in the future is systems coming with a small bit of volatile RAM to store the decryption key in memory that'll be wiped away with a power loss.

I'd assume what you need to store is relatively small, so it wouldn't take much memory to store this. You might also potentionally want to store some other bits in there, to avoid things like cold boot viruses, though I'd think to avoid things like that you'd lose the ability for "instant on" to the exact state you left things...though maybe not.

Anyway, the volatile memory for encryption could either become part of the CPU cache or a small cache/memory chip on the motherboard. I'd think a MB or 4 would likely be more than overkill for that purpose.

NVRAM otherwise could be great to do away with NAND (for true NVRAM, not this flash backup to VRAM). The best part is more the super low access times and memory bandwidth possible for "secondary storage" rather than persistance of your system memory, though the advantage of also having near "unlimited" system memory is also a huge perk.

No more would you, say, have a system with 8GB of system memory and maybe a 240GB SSD. Try having 240GB of combined system memory AND secondary storage, all of it running as fast as main memory and also with absolute power loss presistance.

This will present interesting security problems if put on devices not otherwise physically secured.

Yeah, I'll be really interested in how the various crypto devs approach this, particularly for tools like TrueCrypt--there's already some minor concerns for freezing volatile RAM for some temporary data retention, but at least that has some serious timing hurdles for adversaries to overcome. Meanwhile, I'll take RAM that clears when I power down.

I really wanted to get hold of one of those Gigabyte iRam things from a few years back. That always struck me as being a good product idea, especially in the days before SSDs.

It was a battery-backed PCI card (though had no interaction with the PCI bus at all, just using it for power) which had 4 memory slots and a SATA socket. The only time the battery is used is when there is no power to the system at all, so power cable disconnected or power cut. And battery life was quoted at about 18hrs.

But it was only SATA I and max 4GB memory.

If there was a device which let you hook up 4x 8GB DIMMs to a SATA 3 interface then I'd be interested in running some MySQL/Maria benchmarks on that thing. In fact it would be a shame to have such fast storage limited by the SATA interface but PCI flash vendors tend to charge £££ for that technology.

Yeah, it was pretty sweet for the time. I am kind of half suprised someone hasn't come back with something like this. Say, 4 to 8 DIMM slots on a 16x PCI-e 3.0 card with maybe 2 riser slots for NAND flash on there. Then you can provision it by buying DDR3 DIMMs that you want and get the appropriate capacity flash riser cards to back it up.

A small battery on board to flush the RAM to Flash on system shutdown.

On system power up and reads out everything from flash back to RAM.

super fast RAM disk with power-off presistance. Sure it would be relatively expensive...but man would that thing be killer whicked. I'd probably try to dredge up the money for it if I could.

"a few hundred dollars" is kinda vague, it wasn't so long ago that gamers were spending 100$+ to 150-180+/stick of ram when their systems were rarely even capable of addressing all the memory shoved in it when you could get smaller sticks for a fraction of the price. If it has an optimization option where things kept in memory a long time get shuffled to the nvram as sort of a secondary/faster swap file it could actually be kinda cool in time. Even if the nvram was used by the supporting OS as swapfile space alone with the dcisk based swapfile being a secondary thing used in conjunction with the nvram swap similar to how windows will copy crap in memory to the swap just in case when the system can spare it.

This seems pretty interesting, though I think we'll have to wait a while until OS support catches up to a point where we can really take advantage of these modules.

I think the most interesting use is in "instant on" computing; give the OS a way to mark chunks of RAM for retention, e.g - things like file-caches, and anything else that should be safe to restore, so all it has to do is re-load the important OS components. Either that or the OS would mark all RAM for retention but only when shutting correctly (otherwise it will be wiped on startup to ensure a clean state).

I don't really get the server use case, but for things like tablets and other mobile devices this could be interesting, as you could effectively hibernate the machine without writing anything to disk, which wouldn't pretty damn quick!

"Long term, Micron plans to have versions of its Hybrid Memory Cube (HMC), a 3-D memory and logic stack, suitable for integration in partner ASICs and FPGAs. “They will get access to interface technology…the SoC guys are interested,” said Baxter.

I'm confused. Is there an epidemic of servers losing power that this product addresses? Why do these servers not have UPSs and generators?

A database index can get very big, and can take a long time to "rebuild" if lost. Hours, etc (and your system is probably offline while doing so, so changes don't corrupt the index or prevent it from ever finishing). Therefore, they tend to be stored on SSDs now (HDs before with I-have-a-more-creative-caching-algorithm fight amongst manufacturers) with some in RAM that is lost on power outage.

DB indexes, especially for things like FB, are very constantly changing - this does massive read/writes to SSDs, and can kill them quick. The price you pay to have an index that would cripple you if you had to rebuild.

These address both. The index is entirely in RAM, much faster than SSD... but will dump to NVRAM on a per-DIMM basis, to protect that very valuable index that would, again, cripple your business in lost time to rebuild.

I remember a long time ago there was some product that was essentially a small SCSI disk with an integrated battery and some sticks of RAM. It was some super fast drive for database applications that cost thousands of bucks.At startup it read its contents from the disk into the RAM and during operation it flushed them from time to time to the disk in the background. On a power cut it would just flush all data onto the SCSI disk.I so wanted to have such a thing as an OS drive

And there I see a lot of potential usage. As has been said, DB indexes can get very large if you handle really big databases, they take very long to recreate and SSDs are not well suited as these indexes change a lot.The thought of not having the layer of indirection that is SATA or SAS to persistent storage and just being able to treat main memory as persistent is also intriguing, although I am not so sure why...

That said, I've been asking myself why this kind of thing hasn't become commonly used earlier, especially with SSDs. Giving them a huge cache and protecting it via capacitors or batteries to make it safe write caching seems too easy a solution for reducing write cycles and stepping up performance another notch for those high end enterprise applications where you can charge crazy money per GB.

I don't see how this could work without special motherboard, CPU, and OS support. You can't pull the plug on a computer and expect it to magically keep working when you restore power just because you preserved the data in RAM.

This will present interesting security problems if put on devices not otherwise physically secured.

Yeah, I'll be really interested in how the various crypto devs approach this, particularly for tools like TrueCrypt--there's already some minor concerns for freezing volatile RAM for some temporary data retention, but at least that has some serious timing hurdles for adversaries to overcome. Meanwhile, I'll take RAM that clears when I power down.

Those are good things to ponder. I could see adding low-level language support which supports allocating memory as volatile or non-volatile. In a crypto solution, for example, sensitive elements might also set an auxiliary flag in memory such that when a write to NVRAM occurs these regions are masked to 0. (Or maybe random bits, so that the location of sensitive areas aren't necessarily marked by a predictable sequence?)

Seems marginally useful. I mean, fundamentally this is just pushing the OS "hibernate" function into the DIMM. For what benefit? For any well designed server system, just perform the following semantic subsitution: DIMM battery -> UPS, DIMM flash -> the flash disk you will have anyway, detecting voltage loss and writing to the DIMM flash -> OS getting notified and doing a hibernate.

As others have pointed out, this doesn't even simplify the OS, since OS still needs to have a functioning UPS so the OS can be notified to save the CPU and other system state somewhere else, which the OS will have to be modified to know how to do, which adds complexity, since hibernate is already there in OSes, and this functionality is not.

The ONLY benefit I can see is that the backup happens in parallel for each DIMM, so it MIGHT be faster than a serialized hibernate (if the DIMM flash isn't dog-slow compared to a good fast SSD). And I guarantee these DIMMs are going to be uber-expensive.

And how the hell do you deal with the situations where you -WANT- to purge the RAM contents? Admittedly that shouldn't happen often in a server envirornment, but still, viruses and glitches happen. Do you have to de-rack and crack the case and pull plugs, or is there some kind of a switch? or, did they even consider that?

Yes and what happens when the crackers out there figure out how to access the NAND flash ram? The first attack will take the ACPI power supply to fault triggering the NAND flash write cycle. System comes back up and cracker runs a routine to read the NAND flash maintenance port or a page of mapped RAM with registers to manipulate what's exposed in the RAM page.

I worked with a computer system a few years back that had an internal UPS (not the same I know) and used a switching supply that ran off incoming DC voltage. We had a routine that monitored the incoming voltage sensor and when there was low or no incoming DC it would start a transition to the hibernation state and display a message and count-down on the screen. The UPS gave about 20 minutes of run time. All of this sounds like a laptop power system. But as a controller in an industrial situation it was great. Assuming the operator wasn't stupid, the backup system could be used to maintain uninterrupted control of the industrial process in operation.

I could see this DIMM\NVRAM being a big benefit for clustered servers especially if it has a RTC on-board. When the server comes back up, all it needs is a situation update to cover only the missing downtime and not an entire reboot. Maybe a Restart from NVRAM could be the first option in the BIOS. It would be a lot faster than hibernation.

Assuming those battery packs are rechargeable from the DIMM power pins, it would definitely be useful add-on to a server, but the batteries need to stay near-room temp or you can kiss them an early goodbye. Also it might be a good idea to place them somewhere accessible from the front or back of the server and make them "hot-swappable".

I remember a long time ago there was some product that was essentially a small SCSI disk with an integrated battery and some sticks of RAM. It was some super fast drive for database applications that cost thousands of bucks.

RAM based SSDs FTW. I worked with DEC's ESP drives and I still have one that makes a nice bookend. Fast/wide SCSI for a whopping 20MB/s, for only about $50 per MB!

The article is not very clear on how this works (e.g. why the non-volatile component doesn’t have the wear levelling problems that flash has). At the manufacturer’s site it’s clearer what this actually is (http://www.vikingtechnology.com/arxcis-nv) – it integrates flash onto a DIMM with an automatic copy on power fail function, using supercapacitors to hold enough power when power goes off to copy from the DRAM to the flash. The flash component is not in continuous operation. The practical effect is you can implement a server that doesn’t have to flush its file buffers to disk very often to operate safely across power failures. Presumably there are people out there with big enough data centres for this to matter who can’t afford a big enough UPS + backup generator if this is such a big deal.

As some others have suggested, this can’t work purely as a way of saving file buffers without some OS support; you would need to have a power fail interrupt handler that could save the CPU state and caches as well to use this to do a clean restart for anything more than file buffers. Otherwise you could potentially run a large RAM disk based on this technology, though it’s not clear to me why it’s better than just having a large DRAM, sufficient UPS to keep going a few minutes and a power fail strategy that flushes the file buffers.

Way to come out with something useful and then marry it to old battery backup technology right from the start

Battery backup units are terrible for long term maintenance because of the inherent degradation of the battery, so you end up having to make sure you replace it every few years (and keep records so you know when you did).

What they should have done is use similar technology to what Adaptec is using with their supercapacitor-based cache protection. From Adaptec's website:

Quote:

Zero-Maintenance Cache Protection: The AFM-700 Kit for Series 7 RAID adapters features 4GB of NAND flash memory and super capacitor technology that work together to save cached data in the event of system power loss. The super capacitor charges while the system is booting to provide instant cache protection upon startup. When the module detects loss of power, the super capacitor keeps critical parts of the adapter active long enough to allow data to be copied from the onboard adapter cache to the flash memory.

Using a supercapacitor would have done away with the need for batteries altogether, and thus made it much more suitable for long term, "maintenance-free" operation.

Considering the price disparity between solid state drives and regular spinning drives does "a few hundred dollars each" for these modules really place them out of reach? The main benefit for solid state drives is the instant on, right? Which these could provide?