Customer and Industry Adoption
Taking full advantage of persistent memory requires a change in thinking about memory and storage. Fortunately, Intel and other early adopters (e.g., NVDIMM-N vendors) have already been pushing the industry in this direction for many years. In a rather ironic twist, the software ecosystem is arguably ahead of the hardware.
Windows 10 and Windows Server 2016 have DAX, which will bypass the entire storage subsystem. The NT file system is persistent memory aware, so that developers can reap the benefits using standard file APIs. To reduce address translation overhead, the Windows memory manager aligns DAX partitions to 2MB and when appropriate will use 2MB pages; support for 1GB pages is slated for future releases. HyperV also works with persistent memory, but is not quite as mature given the extra complexity, the 2017 release supports DAX for guest VMs.
Linux is also shipping DAX and several filesystems (e.g., xfs, ext4) are persistent-memory aware. VMware’s vSphere 6.7 hypervisor can virtualize persistent memory to guest VMs without any extra drivers or changes to the software stack.
For adoption of persistent memory and 3DXP DIMMs, Intel is focusing initially on a small number of applications to demonstrate the advantages and build momentum. Databases are near the top of the list of targets due to the combination of benefits from persistent memory and the high value of the systems. For some databases, 3DXP DIMMs effectively expand memory capacity. For example, the Aerospike key-value store was explicitly designed to use SSDs for block storage of the data. To saturate the throughput of modern SSDs, the Aerospike indices (around 2-6% the size of the data) are held in separate byte-addressable memory. 3DXP DIMMs give sufficient capacity to hold the indices and support tremendous data sets. For some clustered databases (e.g., Oracle Exadata), the combination of persistent memory and RDMA enables extremely low latency, low-overhead access to data across the cluster. As another example, Microsoft SQL Server uses write-ahead-logging to commit transactions – meaning that transaction latency and throughput is limited by writes to storage. SQL Server 2016 has support for DAX and can use 3DXP DIMMs for the logging, which will improve transaction latency and throughput from approximately storage speeds to memory speeds.
While databases will be the first area of adoption, persistent memory will be used in other areas as well. CERN is exploring 3DXP DIMMs for data analysis for high-energy physics experiments. Byte-addressable persistent memory also enables an execute-in-place (XIP) model. In traditional systems, instructions and code are held on disk and then paged into DRAM by a loader. XIP is commonly used in embedded devices to hold the OS or applications and execute directly from NOR flash. In a PC or server, paging code from NAND flash is fairly fast, but XIP with 3DXP DIMMs could eliminate or hide the latency of paging altogether.
Once on the market, it is likely that programmers and customers will discover myriad ways to use the new technology. The biggest benefits will come from carefully rethinking how systems work at a fundamental level. For example, both Aerospike and Microsoft selected specific data structures to enlarge or accelerate. As a next step, new algorithms could take advantage of the changes in the memory/storage hierarchy.