Jump to content

Persistent memory

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Pmehra (talk | contribs) at 23:22, 29 February 2016 (Added citation to the first paper from 2004 that defined persistent memory and its applications in OLTP). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In computer science, persistent memory is any method or apparatus for efficiently storing data structures such that they can continue to be accessed using memory instructions or memory APIs even after the end of the process that created or last modified them.[1]

Often confused with non-volatile random-access memory (NVRAM), persistent memory is instead more closely linked to the concept of persistence in its emphasis on program state that exists outside the fault zone of the process that created it.

Efficient, memory-like access is the defining characteristic of persistent memory. It can be provided using microprocessor memory instructions, such as load and store. It can also be provided using APIs that implement remote direct memory access verbs, such as RDMA read and RDMA write. Other low-latency methods that allow byte-grain access to data also qualify.

Persistent memory capabilities extend beyond non-volatility of stored bits. For instance, the loss of key metadata, such as page table entries or other constructs that translate virtual addresses to physical addresses, may render durable bits non-persistent. In this respect, persistent memory resembles more abstract forms of computer storage, such as file systems. In fact, almost all existing persistent memory technologies implement at least a basic file system that can be used for associating names or identifiers with stored extents, and at a minimum provide file system methods that can be used for naming and allocating such extents.

Persistent Memory Applications

High Speed Transaction Processing

Pankaj Mehra and Sam Fineberg [2] invented persistent memory to speed up online transaction processing for Tandem/Nonstop Systems during 2002-2004. They identified the time to persist write-ahead log entries on persistent media as the long pole in the path of committing business transactions, and showed for the first time that persistence and replication go hand in hand.

See also

References

  1. ^ Satish M. Thatte. 1986. Persistent memory: a storage architecture for object-oriented database systems. In Proceedings on the 1986 international workshop on Object-oriented database systems (OODS '86). IEEE Computer Society Press, Los Alamitos, CA, USA, 148-159.
  2. ^ Pankaj Mehra and Samuel A. Fineberg, "Fast and flexible persistence: the magic potion for fault-tolerance, scalability and performance in online data stores," Parallel and Distributed Processing Symposium, 2004. Proceedings. 18th International, 2004, pp. 206-. doi: 10.1109/IPDPS.2004.1303232