Pending Memory Write Snapshotting with Selective NVM Mirroring
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for saving application states using traditional persistent storage and non-volatile memory (NVM) incur latency penalties and are limited by memory page sizes, making it difficult to recover applications from failures with minimal downtime, while software-based mirroring is slow and hardware-based mirroring is inflexible.
Innovation Solution
A method for initiating pending memory writes by monitoring a non-volatile memory write indicator (NVMWI) to selectively write data to both volatile memory (VM) and NVM, using a write pending queue (WPQ) and snapshot cache (SSC) to manage dirty cache lines, allowing dynamic and efficient snapshotting without software overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional persistent storage (hard drives and solid-state drives) is used for taking snapshots, then application states can be saved, but latency and throughput are penalized and memory capacity is reduced
Solution Approach 1:
The patent segments the storage system into two distinct components: volatile memory (DRAM) for high-speed temporary storage and non-volatile memory (NVM) for persistent storage. This segmentation allows the system to leverage the high speed of DRAM for active operations while using NVM for reliable snapshot storage, thereby reducing latency compared to using traditional persistent storage alone.
Solution Approach 2:
The patent introduces a memory controller as an intermediary that manages data transfer between volatile memory and non-volatile memory. This intermediary optimizes the snapshot process by handling the coordination and transfer operations efficiently, reducing the overall latency impact while maintaining reliability.
2Reliability
If traditional persistent storage is used for snapshots, then application states can be saved, but memory capacity is reduced due to memory page size limitations
Solution Approach 1:
The patent segments the storage functions by dedicating specific portions of non-volatile memory to snapshot storage while leaving the majority of volatile memory available for application use. This segmentation eliminates the need to reserve entire memory pages for snapshot purposes, thereby preserving memory capacity while ensuring reliable state saving.
3Loss of time
If non-volatile memory is used for snapshots, then latency is reduced, but programming difficulty increases
Solution Approach 1:
The patent implements self-service mechanisms where the memory controller automatically manages the snapshot operations to and from non-volatile memory. This automation handles the programming complexity internally, presenting a simplified interface to the application while maintaining low latency through direct NVM access.
Solution Approach 2:
The memory controller serves as an intermediary that shields the application from the programming complexity of NVM. It handles the detailed programming operations, wear leveling, and data management, thereby reducing programming difficulty while maintaining the latency benefits of direct NVM access.
4Reliability
If software-based mirroring is used for fault tolerance, then data can be replicated, but performance becomes slow
Solution Approach 1:
The patent replaces software-based mirroring mechanisms with a hardware-based approach using non-volatile memory and memory controller management. This substitution eliminates the performance overhead of software processing while maintaining fault tolerance through persistent data replication in NVM.
Data Source
Figure 1
Figure 2
Figure 3~4
AI summary
There is provided mechanisms for initiating writing data of a pending memory write on a host computer. A method comprises monitoring pending memory writes for a non-volatile memory write indicator (NVMWI). The NVMWI is either set or not set. The method comprises initiating writing of the data of the pending memory write. Writing of the data is initiated to both a non-volatile memory (NVM) and a volatile memory (VM) when the NVMWI for the pending memory write is set. Writing of the data otherwise is initiated only to the VM.