Introduction to PMem

Using volatile memory (DRAM) and persistent memory (PMem) in combination enables applications to expand memory capacity relatively cheaply and to persist memory data objects, a capability that previously was only possible by writing to storage devices.

Nonvolatile, or persistent, memory (PMem) is a type of computer memory that does not lose its data when power is turned off. PMem is cheaper than system dynamic RAM (DRAM), which is faster; and faster than solid state storage devices (SSD), which are cheaper. PMem therefore occupies an entirely new role in server-side computing data systems that traditionally has been split into storage (SSD or hard disk storage) and memory (DRAM and various caching schemes).

Memory Machine can be integrated with existing applications without code changes and recompilations. This is done using a custom preload library and a memory allocation service that are transparent to running applications. See Transparent Memory Service.

For more precise control of memory allocation in volatile vs. non-volatile memory, applications can be modified using an available API. The API enables developers to customize applications to select which memory items to place into DRAM or PMem to lower latency and system load.

Exploiting the properties of PMem enables Memory Machine to offer previously impossible memory-based data services.

Restriction: ZeroIO Snapshot based services are available only in Memory Machine Advanced Edition.
  • ZeroIO Snapshot enables images of application instances to be almost instantly captured and restored to local or remote PMem.
  • Snapshots can be cloned to run several versions of the same application instance at once.
  • With Memory Machine Publication-Subscription Service (MM Pub-Sub), an application can publish time-series data, such as stock ticks, to serve multiple client subscribers with low-variability, near-zero latency.