What is Persistent Memory and why we need it
To have persistent memory means that you don’t have to worry about losing your data if something goes wrong with the computer. Your data is always available, no matter what happens to your computer. The information stored in your computer can be accessed by you at any time. It doesn’t matter if your computer crashes or gets infected with a virus. Your data is safe. The data that you store in your computer isn’t lost as long as you have a way to access your files.
The phrase “persistent memory” refers to systems that let programs access data as directly byte-addressable memory, with the contents remaining non-volatile across power cycles. It has features similar to memory and features similar to storage, although it doesn’t often replace any of them. Persistent memory, on the other hand, is a third tier that works with memory and storage. Persistent memory systems can perform better than conventional arrangements, offering quicker startup times, quicker access to massive in-memory datasets, and frequently lower total cost of ownership.
Whenever Persistent Memory is mentioned, it is thought of separate hardware installed on the memory bus in combination with supporting software. Look at Intel Optane Persistent Memory to see what this hardware looks like. Persistent Memory (PMEM) is also referred to as Non-Volatile Memory (NVM), or Storage Class Memory (SCM) so you can find them under these names too.
The memory/storage hierarchy is organized into a set of levels and a principle that makes most often used items in memory closest to the processor. The memory-storage structure depicted in the image below has been implemented by computer systems during the past few decades. However, the latest CPU generations have continued to make their CPUs faster, adding more cores and threads with each new generation as they try to maintain Moore’s Law. DRAM and non-volatile storage are both key elements in many server and desktop computers, and their performance has not kept up with processor performance. That, in turn, means a bottleneck for system and application performance.
Persistent Memory provides a new storage method for computers that addresses the performance/capacity gap of RAM. See the new entry in the memory-storage hierarchy depicted below.
Persistent memory can place your data in memory locations, which enables applications to use more of that memory. The persistent memory tier offers much more capacity than DRAM and significantly faster performance than storage. Applications don’t need to page data blocks back and forth between memory and storage since persistent memory can be accessed the same way as regular memory.
Why would we need it
As we continue to push the boundaries of what databases are capable of, we’re just beginning to see the capabilities that are possible with persistent memory. To understand this potential, it’s helpful to take a look at Oracle Exadata X8M.
Exadata is the first Oracle Database system designed to take advantage of Persistent Memory for accelerated performance, and it provides full data protection, redundancy, and high availability. According to Christian Craft, a senior director at Oracle, “ Exadata X8M is able to achieve less than 19µsec (microsecond) storage latency and 16 million IOPS (Input/Output Operations Per Second) within a single rack. Customers do not need to configure, tune or even choose Persistent Memory in Exadata X8M. Persistent Memory is automatically included in all Exadata systems and there is nothing to configure or administer.” — as written in a blog post by Oracle.
Where do I start with Persistent Memory
First, start by exploring one of the software suites for managing and accessing persistent memory devices. I would personally start with the Persistent Memory Development Kit (PMDK) that is being developed for Intel’s hardware that’s already available on the market. Here’s a link to the project on Github. To make things more approachable Andy Rudoff, a senior principal engineer at Intel created an application for Persistent Memory hackathons. The app contains all the dependencies that you need to install to start playing with Persistent Memory. It also includes tutorials that will show you how PMDK works in an approachable manner. Take a look at a video clip of how this app looks like and what you can do with it.
The persistent memory is something very new and revolutionary. I think that it has a huge potential and will change the architecture of modern computers. As technology advances, we will see more and more interesting technology like this one. It will be interesting to see how it will change the future of computers and the way that we interact with computers.