Preventing data loss in servers has been an objective since the invention of the database. A tiny software or hardware glitch that causes a power interruption can result in lost data, potentially interrupting services and, in the worst case, costing millions of dollars. So database developers have been searching for ways to achieve high transaction throughput and persistent in-memory data.
The industry took a tentative step with power-protected volatile DIMMS. In the event of a server power failure, the Power Protected DIMM activates its own small power supply, enabling it to flush volatile data to a non-volatile media. This feature, referred to as Asynchronous DRAM Refresh (ADR) is limited and quite proprietary. Nevertheless, the power protected DIMM became a concrete device for architects to consider improvements to a persistent memory software model.
To build the software model, the Storage and Networking Industry Association (SNIA.org) assembled some of the best minds in the storage and memory industries into a working group. Starting in 2012, they developed ideas of how applications and operating systems could ensure in-memory data was persistent on the server. They considered not only the power protected DIMMs, but also how emerging technologies like resistive RAM memories, could fit into the model. Approved and published in 2013, the SNIA Persistent Memory Programming Model 1.0 became the first open architecture that allowed application developers to begin broad server enabling for persistent memory.
This graphic from the Storage Networking Industry Association shows examples of the programming model for a new generation of non-volatile memory.
Further impetus to program to the model emerged in late July 2015 when Intel and Micron announced they have started production on a new class of non-volatile memory that is the first new memory category in more than 25 years. Introduced as 3D XPoint™ technology, this new class of NVM has the potential to revolutionize database, big data, high-performance computing, virtualization, storage, cloud, gaming, and many other applications.
3D XPoint (pronounced “three-D-cross-point”), promises non-volatile memory speeds up to 1,000 times faster than NAND, today’s most popular non-volatile memory. It accomplishes this performance feat by putting large amounts of quickly accessible data close to the processor, where it can be accessed at speeds previously impossible for non-volatile storage.
The new 3D XPoint technology is the foundation for Intel MDIMMs, announced at Intel Developer Forum in August. These DIMMs will deliver higher up to 4X the system memory capacity than today’s servers, at a much more affordable price than DRAM. The result will be NVM DIMMs that can be widely adopted.
Of course, technology alone doesn’t deliver benefits to end users. Applications have to be written to take advantage this disruptive technology. Building off the SNIA persistent memory programming model, open source developers have converted Linux file systems to be persistent memory aware, and integrated those new capabilities into Linux 4.0 upstream kernel.
Adding to the enabling effort, Intel and open source developers have been creating a Non-Volatile Memory Library (NVML) for Linux software developers. NVML enables developers to accelerate application development for persistent memory, based on the open SNIA persistent memory programming model.
It’s safe to say that developers will find this open source library to be extremely valuable. It hides a lot of the programming complexity and management details that can slow the development process, while optimizing instructions for better performance.
The five libraries in the NVML set will enable a wide range of developers to capitalize on 3D XPoint technology—and push applications into an all-new performance dimension.
Here’s the bottom line: 3D XPoint technology is coming soon to an Intel data center platform near you. If you’re a software developer, now is a good time to get up to speed on this new technology. With that thought in mind, here are a few steps you can take to prepare yourself for the coming performance revolution brought by a breakthrough technology.
Learn about the Persistent Memory programming model.
Read the documents and code supporting ACPI 6.0 and Linux NFIT drivers
Learn about the non-volatile memory library (NVML) and subscribe to mailing list.
Explore the Intel Architecture Instruction Set Extensions Programming Reference.
And if your application needs access to a large tier of memory but doesn’t need data persistence in memory, there’s an NVM library there for you too.
We’ll discuss more on Big Data, Java and 3D XPointTM in a future blog post.
1 Performance difference based on comparison between 3D XPoint technology and other industry NAND.