Persistent Memory Atomicity via Bitmap Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering Contradiction Analysis

1Productivity

If large data is written to persistent memory without atomicity guarantees, then write speed is improved, but data consistency deteriorates

Engineering Contradiction:
Improvewrite speedVSAvoiddata consistency
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If bitmap tracking is implemented for all segments, then atomicity determination is improved, but memory overhead increases

Engineering Contradiction:
Improveatomicity determinationVSAvoidmemory overhead
Core Design Contradiction:
ReliabilityVSQuantity of substance

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.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

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.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12216913B2System and method of providing atomicity to large writes to persistent memory
Publication Date: 2025.02.04 SAMSUNG ELECTRONICS CO LTD
  • US12216913B2 patent drawing
  • US12216913B2 patent drawing

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.