Synchronization Bitmaps for Distributed Data Object Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed data objects, when a component becomes unavailable, it can become stale, leading to reduced data availability and durability, and synchronization processes can corrupt tracking data due to changes occurring in a different order than the original data writes, affecting future synchronization processes.

Innovation Solution

The use of synchronization bitmaps is introduced to track changes in stale components, involving the detection of a stale log sequence number (LSN) and last committed LSN, creation of a synchronization bitmap, identification of a matching tracking bitmap, and synchronization with an active component to update the stale component, thereby reducing data corruption and processing resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a stale component is synchronized with active components using traditional tracking methods, then the stale component is brought up to date, but the tracking data becomes corrupted due to changes occurring in a different order than the original data writes

Engineering Contradiction:
Improvedata integrityVSAvoidtracking data corruption
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The patent segments the tracking mechanism into two distinct bitmaps: a tracking bitmap that records original data write operations and a synchronization bitmap that records synchronization operations. This segmentation prevents mixing of operation types that causes corruption, as each bitmap independently tracks its specific operation sequence without interference from the other.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The synchronization bitmap acts as an intermediary structure that mediates between the stale component and active components during synchronization. It records synchronization operations separately and provides a clean interface for tracking changes without directly modifying the original tracking bitmap, thus preventing corruption of the original data write record.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If traditional synchronization methods are used without separate tracking, then synchronization can be performed, but tracking data corruption occurs affecting future synchronization processes

Engineering Contradiction:
Improvesynchronization capabilityVSAvoidfuture synchronization reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent performs preliminary action by creating and initializing the synchronization bitmap before the synchronization process begins. This preparation ensures that the bitmap structure is ready to accurately record synchronization operations from the start, preventing any potential corruption that would occur if tracking were attempted without proper preliminary setup.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback by using the synchronization bitmap to track which data blocks have been synchronized, and this tracking information feeds back into the synchronization process to determine which blocks need updating. This feedback mechanism ensures accurate tracking without corruption, as the bitmap is updated in a controlled manner based on actual synchronization outcomes.

Inventive Principle:
Principle #23Feedback

3Device complexity

If synchronization operations are performed without separate tracking bitmaps, then the process is simpler, but data corruption occurs due to ordering conflicts between write operations and synchronization operations

Engineering Contradiction:
Improvetracking structure complexityVSAvoiddata block corruption
Core Design Contradiction:
Device complexityVSLoss of information

Solution Approach 1:

The patent divides the tracking structure into two separate bitmaps to avoid the complexity of managing a single mixed tracking structure. This segmentation, while creating two separate data structures, actually simplifies the logic within each bitmap by giving each a single, well-defined purpose: tracking either original writes or synchronization operations, thereby reducing overall system complexity and preventing corruption.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes the parameter of tracking granularity by moving from a single unified tracking structure to two separate tracking structures with different granularities. The tracking bitmap tracks at the operation level (original writes), while the synchronization bitmap tracks at the data block level (synchronization status). This parameter change allows each structure to operate independently without interference.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11599554B2Synchronizing changes to stale components of a distributed object using synchronization bitmaps
Publication Date: 2023.03.07 VMWARE INC
  • US11599554B2 patent drawing
  • US11599554B2 patent drawing
  • US11599554B2 patent drawing

AI summary

The disclosure herein describes tracking changes to a stale component using a synchronization bitmap. A first component of a plurality of mirrored components of the distributed data object becomes available from an unavailable state, and a stale log sequence number (LSN) and a last committed LSN are identified. A synchronization bitmap of the first component associated with a range of LSNs (e.g., from the stale LSN to the last committed LSN) is created and configured to track changes to data blocks of the first component. A second component is identified based on the second component including a tracking bitmap associated with an LSN that matches the stale LSN of the first component. The first component is synchronized with data from the second component based on, wherein the synchronizing includes updating the synchronization bitmap to track changes made to data blocks of the first component.