| |

New Architectures Benefit Killer Apps

January 29, 2013, SNIA Non-Volatile Memory Summit, Santa Clara, CA—Garret Swart from Oracle identified the potential benefits for applications with the new storage architectures. The different memory structures and performance levels calls for new programming styles.

With the advent of DRAM-compatible NVM technologies, the choices for NVM, connectivity, and form factors allows for greater diversity in hardware structures. The issues is to integrate the necessary functions like wear leveling into the memory subsystem.

One big area for NVM is in in-memory databases. The relational data warehouses are changing the use models of storage. Existing systems use a write-ahead log for snapshots and checkpoints. The problem is that these logs increase latency and may actually reduce data integrity, especially if a system fault occurs during the write. The advantage of a checkpoint is to improve serialization, aid in recovery, and compact the heap.

Changing the system to use NVM enables a fast write to the log and allows for the combining of the checkpoint and the working copy. Recovery becomes a function of only needing the latest active transitions. NVM has the potential to reduce architectural complexity, the number of system-level transactions, and increase overall performance.

For example, DRAM corruption can be discovered and fixed during the checkpointing process. Backup of the memory-mapped files can be changed to backing up only the persistent data and performing periodic partition recovery. The NVM performance enables copy on write within the data structures.

Caches and cache structures are challenged by the size of the data, the data set is larger than the DRAM. Rebuilding the cache after a restart requires identifying cold versus cool data, but if the data were in cache, on a recent miss means that some of the latest data were flushed on that miss. The classifications will affect the hit rate.

An alternative is to let the OS manage the transactions, but the OS overhead may be too high to maintain performance. In addition, virtual machine address space doesn’t scale. Another possibility is to put all the near data into an applications cache. One issue is that shared NVM might have multiple application caches, and validation and synchronization are difficult. Write-back updates can bring the data and metadata back together. Managing the memory hierarchies is still based on log reports, just fewer of them in a NVM system. Memory-mapped systems are best for small entities.

Replication is partitioned between physical and logical sections. Physical partitions are faster, sue to the direct access to the address spaces, while logical are more resilient. Adding library support helps both structures. High availability requires replication on separate domains, but there are no dual-port DIMMs available for this function. RDMAs can help to manage the memory-mapped NVM. Users need to define implicit or explicit msync despite all the msync issues.

Similar Posts