The next generation of storage disruption: storage-class memory
Storage-class memory (SCM), also known as persistent memory, may be the most disruptive storage technology innovation of the next decade. It has the potential to be even more disruptive than flash, both from a performance perspective and with the way it will change both storage and application architectures.
SCM is a new hybrid storage/memory tier with unique characteristics. It’s not exactly memory, and it’s not exactly storage. Physically, it connects to memory slots in a motherboard, like traditional DRAM. While SCM is slightly slower than DRAM, it is persistent, meaning that, like traditional storage, its content is preserved during a power cycle.
Compared to flash, SCM is orders of magnitude faster and, just as critically, delivers these performance gains equally on both read and write operations. It has another benefit over flash as well – SCM tiers are significantly more resilient, not suffering from the wear that flash falls victim to.
Interestingly, SCM can be addressed at either the byte or block level. This gives operating systems, software and hypervisor developers significant flexibility regarding the medium’s applications. For example, it’s conceivable that operating systems will initially treat SCM as block storage devices formatted by file systems and databases for compatibility purposes. However, next-generation applications may choose to access SCM directly via memory-mapped files. Hypervisors can abstract and present isolated SCM regions directly to different VMs as either execution memory or a flash-like storage resource.
Consider for a moment how DRAM is used today. For decades, applications have stored data temporarily in DRAM – that is, volatile memory. At specific execution points data structures were reformatted and placed into 512-byte blocks. They were then written (along with metadata) to disks structured as either files systems or databases for persistence. Built into that metadata was a significant amount of information that protected against failures and corruptions.
Now contrast that to how SCM will be used. Because SCM is persistent, the content it stores remains in memory, not just in the case of planned reboots, but also during unplanned crashes and downtime. The medium is also byte-addressable, eliminating the need to package data into coherent 512-byte blocks. The combination of keeping a memory structure “live” with byte-level granularity, while eliminating the necessity of an intermediate copy, will revolutionize application design.
It will be late 2016 before SCM technology is available to organizations – and that will take place with an initial implementation from Intel with its 3D XPoint technology. HP and SanDisk have also announced a collaboration for SCM, although it will likely become available in 2017 or later. As with any new emerging technology, early SCM implementation may only be appropriate for specific industries and applications. The initial price point and performance capabilities may appeal only to certain use cases before reaching a more general audience.
As it reaches the mainstream, operating systems, software and hypervisor developers may choose to integrate SCM into legacy architectures at first, rather than re-writing applications to provide all the benefits of the new technology. This will, however, still provide a technology that is both significantly faster and more resilient than flash, as well as denser and less expensive than DRAM memory technology. In-memory computing, HPC and server-side caching may be some of the early adopters of SCM on the application side, which help bring this new technology broadly to the market.
Davis drives product and technology strategy at Infinio. Previously he spent seven years at VMware, where he was CTO for VMware’s End User Computing Business Unit.