Resumable Copy-on-Write B+Tree Node Deletion

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing techniques for deleting logical map B+ tree nodes in snapshot hierarchies face challenges such as data corruption due to dangling pointers, especially during crash recovery, and are inefficient due to high overhead in persisting identifier information for resuming snapshot deletion.

Innovation Solution

The introduction of a node path cursor that stores information about the latest processed node, allowing for efficient resumption of snapshot deletion by skipping accessed nodes and reducing overhead, thereby avoiding dangling pointers and improving the deletion process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If identifier information of all processed nodes is persisted for resuming snapshot deletion, then the deletion can be resumed after crash, but the overhead of persisting identifier information becomes high

Engineering Contradiction:
Improvedeletion resumption capabilityVSAvoidoverhead of persisting identifier information
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent extracts only the essential information needed for resumption (node path cursor indicating the last processed node) from the full set of processed node identifiers. Instead of persisting all processed node identifiers, the system maintains a compact cursor that points to the current position in the deletion process, dramatically reducing the amount of data that needs to be persisted while still enabling complete resumption capability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Rather than tracking and persisting all nodes that have been processed (forward tracking), the system inverts the approach by tracking only the current position in the deletion process through a cursor. This inversion transforms the problem from managing a large set of processed identifiers to maintaining a single position indicator, reducing persistence overhead while preserving resumption functionality.

Inventive Principle:
Principle #13The other way round (Inversion)

2Productivity

If simple restart of logical map B+ tree deletion is performed after crash, then the process can be quickly resumed, but dangling pointers may remain causing data corruption

Engineering Contradiction:
Improvedeletion resumption speedVSAvoiddata consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary action by maintaining a node path cursor that continuously tracks the current position in the deletion process throughout normal operation. This cursor is periodically persisted to storage, so that when a crash occurs, the system has already prepared the resumption state. The preliminary tracking of position information eliminates the need for complex recovery analysis after crash, enabling both fast resumption and data consistency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The node path cursor acts as a feedback mechanism that continuously monitors the deletion progress and provides state information for recovery. After crash, the system reads the persisted cursor position and uses this feedback to determine exactly where to resume deletion, ensuring that no nodes are skipped or processed twice. This feedback loop maintains both speed and consistency by providing precise recovery guidance.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11860736B2Resumable copy-on-write (COW) B+tree pages deletion
Publication Date: 2024.01.02 VMWARE INC
  • US11860736B2 patent drawing
  • US11860736B2 patent drawing
  • US11860736B2 patent drawing

AI summary

A method for resumeable snapshot deletion is provided. A method for deletion of nodes maintained in an ordered data structure for a first snapshot includes processing the nodes maintained in the ordered data structure according to a defined order, setting a node path cursor with a pointer to a node and an indication of the deletion of the node; storing the node path cursor in a persistent storage; and during processing of the nodes: detecting a failure; after the failure, checking the pointer of the node path cursor; and resuming processing of the nodes starting from the first node indicated by the pointer.