Persistent Memory Atomicity via Bitmap Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing object storage systems lack a standard technique for ensuring atomicity of large data writes to persistent memory, making it uncertain which data are recoverable after a power failure.
Innovation Solution
An object storage system that allocates segments of persistent memory to applications, uses a bitmap to indicate allocation and finalization of data, and determines atomicity based on the settings of these bitmap bits.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If large data is written to persistent memory without atomicity guarantees, then write speed is improved, but data consistency deteriorates
Solution Approach 1:
The persistent memory is divided into multiple segments, each independently manageable and associated with specific bitmap bits. This segmentation allows the system to track and manage atomicity on a per-segment basis, enabling large data writes to be processed efficiently while maintaining consistency guarantees for individual segments through the bitmap mechanism.
Solution Approach 2:
The system performs preliminary actions by setting bitmap bits to indicate allocation status and finalization status before actual data writes occur. This preliminary tracking allows the system to establish atomicity guarantees in advance, ensuring that even if power fails during a large write operation, the system can determine which segments contain complete, consistent data and which do not.
2Reliability
If bitmap tracking is implemented for all segments, then atomicity determination is improved, but memory overhead increases
Solution Approach 1:
The bitmap uses minimal memory resources (single bits per segment) compared to more complex atomicity tracking structures. Each segment is associated with just two bits in the bitmap, providing an efficient, low-overhead mechanism for tracking allocation and finalization status without requiring substantial additional memory resources.
Solution Approach 2:
The system changes the state representation from complex metadata structures to simple binary bitmap bits. By encoding allocation status and finalization status as single bits rather than using elaborate data structures, the system achieves efficient atomicity tracking with minimal memory overhead, transforming the problem into a space-efficient parameter representation.
Data Source
AI summary
A system and a method are disclosed that provides atomicity for large data writes to persistent memory of an object storage system. A segment of persistent memory is allocated to an application. The persistent memory includes non-volatile memory that is accessible in a random access, byte-addressable manner. The segment of persistent memory is associated with first and second bits of a bitmap. The first bit is set indicating that the segment of persistent memory has been allocated. Data is received from the application for storage in the segment of persistent memory, and the second bit is set indicating that data in the segment of persistent memory has been finalized and is ready for storage in a storage medium that is different from persistent memory. The atomicity of the data in persistent memory may be determined based on the first bit and the second bit being set.

