Hoping for a thousand-fold enterprise SSD speed gain from 3D XPoint? Think again.
3D XPoint storage from Intel and Micron promises to be a thousand times faster than existing flash NAND storage. That means the sorts of speeds we can expect from 3D XPoint-based enterprise SSDs will be about a thousand time faster than existing enterprise SSDs, right?
Wrong. Unfortunately, the speed gains we can expect from 3D XPoint are likely to be much, much lower than that. Initially, these new enterprise SSDs may be five or six times faster, and eventually, they may even be a hundred times faster. But enterprise SSD speeds that are anything like a thousand times faster than now won't ever be on the table.
To understand why, we need to examine the idea that 3D XPoint is a thousand times faster than NAND. "Do we view this type of persistent memory as memory or as storage?" asks Jim Handy, solid state storage expert and semiconductor analyst at Objective Analysis. "The biggest difference is that there are no interrupts with memory. An interrupt stops the processor and makes it jump to a subroutine, and every time it does so, there is a 60-microsecond penalty. With memory there are no interrupts," he says.
The problem with persistent memory like 3D XPoint is that it sits somewhere between fast, expensive DRAM and cheap but slow conventional storage. That means it is too fast for the interrupt system to be used efficiently, but too slow to function efficiently as DRAM (which provides data almost instantly.)
To see how inefficient it is to treat 3D XPoint as storage (albeit very fast storage), it's worth bearing in mind that the time that it takes for data to appear at the output of a NAND or 3D XPoint chip after an address is applied to the chip is only a part of the total latency when using an SSD. According to the Storage Networking Industry Association (SNIA), sources of latency include:
The point is that even though 3D XPoint may be three orders of magnitude faster than NAND, the last three of these sources of latency remain constant regardless of whether an enterprise SSD is NAND-based or 3D XPoint-based.
While the effect these latency sources have on NAND-based enterprise SSD speed is relatively small because the latency of the NAND itself accounts for the vast majority of the total latency, when it comes to 3D XPoint-based SSDs this latency is very significant indeed — accounting for perhaps half of the total latency.
Let's put that another way. Imagine you could make some sort of super 3D XPoint which worked thousands of times faster still —- in other words, as quickly as DRAM. Even if you used this super 3D XPoint to make an enterprise SSD you would still be stuck with total latency that is just a single order of magnitude less than you would experience with a NAND-based SSD.
That means, for the moment, 3D XPoint enterprise SSD speeds won't be anything like as fast as many people are expecting, and they will likely only offer performance boosts of a factor of seven or eight or even ten. That's still impressive, but not quite the game-changer some people have anticipated.
So what's the solution if we want to see enterprise SSD speeds that are a thousand times faster than current enterprise SSD speeds, not just ten times faster?
The obvious answer is to figure out how to reduce the latency caused by these last three factors, of which by far the most significant one is the last: the latency introduced by the application and operating system software getting data from the storage. And the most promising solution that would result in faster enterprise SSD speeds is to stop treating these fast SSDs as storage and start treating them more like slow but persistent memory, Handy says.
Just to recap what Handy is saying, 3D XPoint can be treated in two ways:
"But at the moment We are forced to put 3D XPoint on a disk interface as the memory interface has not been worked out yet, " Handy says.
Alex McDonald of storage vendor NetApp, talking on behalf of the Storage Networking Industry Association (SNIA) Europe, agrees, and says what's needed is a new programming model for treating 3D XPoint as memory-like non-volatile memory. While this might not help to increase enterprise SSD speeds, it would allow 3D XPoint to be used more efficiently.
So what would the new programming model look like, and where would it need to be applied, if 3D XPoint is to be used as memory-like non-volatile memory?
McDonald suggest that what's necessary is to start rewriting apps to do things rather differently. "When you update a row in a database, you lock main memory, read data from disk, update it, write it back and release the lock. That's expensive, and you often you don't actually need the lock," say McDonald. "For example, if I update my bank account, no-one else will be doing it at the same time."
As an alternative, McDonald suggests using snapshots, but instead of putting those snapshots onto disk you put them in the CPU cache. "If the transaction succeeds, then that's fine. But if not you just roll back and try again, so you don't have any locks."
So effectively what you are doing is putting data into the processor cache and isolating it while it's being worked on. If the transaction fails, then you just flush the cache and reread the data from memory – which has not been written to or modified in any way.
But as long as 3D XPoint is treated as disk-like non-volatile memory then the latency issues discussed above will limit enterprise SSD speeds. If the software latency can't be improved significantly, then to increase enterprise SSD speeds further it will be necessary to look at the other sources of latency such as the interface overheads. "Instead of using PCIe, we could put SSDs onto the processor bus (and therefore "closer" to the CPU.) This would make it fractionally faster, but all these gains add up," says McDonald.
This sounds like the principal of marginal gains espoused by Team GB's Olympic cycling mastermind Sir David Brailsford. "The whole principle came from the idea that if you broke down everything you could think of that goes into riding a bike, and then improved it by 1 percent, you will get a significant increase when you put them all together," is how Brailsford describes it.
And in fact, that's exactly what it is. Getting 3D XPoint enterprise SSD speeds to their maximum will be all about reducing software latency, interface latency and all the other sources of latency by fractions of milliseconds.
So how high are enterprise SSD speeds ever likely to get using 3D XPoint? "Will we get to 3D XPoint SSDs that are one thousand times faster than now? Probably not," says McDonald. "Will we get ones that are one hundred times faster? Probably."
Eventually this will all become moot as enterprise switch from using 3D XPoint as disk-like non-volatile memory to memory-like non-volatile memory. But McDonald doesn't expect that to happen for at least ten years.
"Banks are still using software from the 1960s, and there is huge inertia," he explains. "It's only at the leading edge – in applications like artificial intelligence and genomics – that this will happen more quickly. The bog standard stuff won't change any time soon."
Until then 3D XPoint's impact is likely to be higher enterprise SSD speeds – but speeds that are only ten or a hundred times higher than what's currently available rather than a thousand times higher, as they initially seemed to promise.
Photo courtesy of Shutterstock.