In November 2017, during the PASS Summit keynote, Microsoft’s Bob Ward (Principal Architect) demonstrated a “diskless database” running on Hewlett-Packard Enterprise (HPE) hardware. The storage layer is known as “persistent memory”.
At the end of November, Bob and his colleague Jamie Reding (Senior Program Manager) wrote a blog post about this new thing, which you can read here.
They go into a bit more detail about the technical specifications, including that the server is running SUSE Linux Enterprise Server (SLES), one of the supported Linux operating systems for SQL Server 2017. The performance metrics of this system are astounding.
For the longest time, hard drives were the slowest part of a system. They still are, but solid-state storage was one of the biggest changes in computer hardware, which also brought about the smart phone revolution.
Now we are looking at computers that don’t use storage at all*, but use persistent memory. There are no more moving parts in a computer (except the fans).
How does RAM work then?
Random Access Memory, known as RAM for short, sometimes DRAM (for “dynamic”), or just “memory”, is really fast but volatile. What this means is an electrical current has to be constantly and consistently applied to RAM for its “state” (the bits in the memory chips that store ones and zeros) to be maintained. If the current is interrupted for any reason, whatever is stored in RAM will be gone forever.
Additionally, for an application to be running, it has to be in memory. Once an application stops, it literally removes itself from memory, and all of the structures it was using will also be destroyed.
RAM is expensive when compared to the equivalent storage on hard drives or solid state drives. A terabyte (1,024 GB) of memory is several times more expensive than 1 TB of solid state storage. The speed of memory has a lot to do with that. Slower stuff is cheaper.
What the heck is persistent memory?
First off, persistent memory is not the same thing as NVRAM (non-volatile RAM). In fact, that’s already been invented, and we just call it flash memory. When we stick a bunch of those chips in a box or on a card, we call it solid-state storage.
What Hewlett-Packard (and other companies) have been working on is the ability to maintain the speed of RAM, but be able to persist the state without having to copy (save) the data to a storage layer. Storage is slow. RAM is fast. What we’ll see is that this is just not possible, so HPE have come up with a really smart compromise.
I read the article, and they’re cheating!
According to the article on HPE’s website about persistent memory, they haven’t invented anything new. Not really. Even so, it’s a very clever use of existing technology. Here’s the pull quote that matters (my emphasis added):
It includes a DRAM layer to accelerate applications, a dedicated flash tier for persistency, and backup power to facilitate moving data from DRAM to Flash.
In other words, there’s good old RAM, which the application runs in. In the background, there’s a bunch of flash storage to persist anything in the RAM layer using some smart firmware. And of course, electricity to make sure there’s less chance of data loss.
Now you know why they put “diskless” in quotation marks in all the copy. It’s not really diskless, but it’s still really exciting technology. I for one welcome our hybrid memory and flash storage overlords.
Discuss your favourite storage format with me on Twitter at @bornsql.
* Not true at all.