Resumable Copy-on-Write B+Tree Node Deletion
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
Data Source
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.


