Snapshot Page Deletion Using Sequence Numbers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for deleting snapshots in software-defined data centers incur significant IO overhead due to reference counting and iterator-based approaches, leading to noticeable slowdowns.
Innovation Solution
The implementation of a method using sequence numbers and page lookups to determine shared pages, where each snapshot has a logical map B+tree with monotonically-increasing sequence numbers, allowing for efficient deletion of exclusively owned pages without scanning parent or child snapshots.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If reference counting and iterator-based approaches are used to delete snapshots, then snapshot deletion can be performed, but significant IO overhead is incurred leading to noticeable slowdowns
Solution Approach 1:
The patent applies preliminary action by pre-assigning monotonically increasing sequence numbers to each page when it is created or allocated in the storage system. This pre-tagging approach allows the deletion process to efficiently identify and delete exclusively owned pages without requiring time-consuming reference counting or iterator-based scanning during the actual deletion operation. The sequence numbers are prepared in advance, enabling fast lookup and deletion decisions.
Solution Approach 2:
The patent extracts the overhead of determining page ownership from the deletion process itself. By maintaining sequence number metadata that pre-identifies exclusively owned pages, the system separates the ownership determination logic from the deletion execution. This extraction allows the deletion operation to focus solely on removing pages that are marked as exclusively owned, without needing to perform reference counting or scan parent/child snapshots during deletion.
2Ease of operation
If reference counts of nodes are kept and checked to determine shared or deletable nodes, then snapshot deletion can be performed, but IO overhead increases causing slowdowns
Solution Approach 1:
The patent uses sequence numbers as a simplified copy or representation of page ownership information. Instead of maintaining complex reference count metadata for each node, the system uses the pre-existing sequence number (which copies the creation timing information) to determine ownership. This sequence number acts as a lightweight surrogate that eliminates the need for separate reference counting structures and their associated complexity.
3Reliability
If iterators are used to scan parent and child snapshots to determine shared pages, then accurate deletion can be performed, but IO performance deteriorates
Solution Approach 1:
The patent applies preliminary action by pre-assigning monotonically increasing sequence numbers to each page when it is created or allocated in the storage system. This pre-tagging approach allows the deletion process to efficiently identify and delete exclusively owned pages without requiring time-consuming reference counting or iterator-based scanning during the actual deletion operation. The sequence numbers are prepared in advance, enabling fast lookup and deletion decisions.
Data Source
AI summary
The present disclosure is related to methods, systems, and machine-readable media for deleting snapshot pages using sequence numbers and page lookups. A monotonically-increasing sequence number (SN) can be assigned to each created page of a first snapshot of a storage volume. A first snapshot sequence number (snapSN) can be assigned to the first snapshot responsive to a creation of a second snapshot, wherein the first snapSN is equal to a largest SN of the first snapshot. An SN can be assigned to each created page of the second snapshot, wherein a first page of the second snapshot is assigned an SN monotonically increased from the first snapSN. A second snapSN can be assigned to the second snapshot responsive to a creation of a third snapshot, wherein the second snapSN is equal to a largest SN of the second snapshot. An SN can be assigned to each created page of the third snapshot, wherein a first page of the third snapshot is assigned an SN monotonically increased from the second snapSN. A deletion process can be performed in response to receiving a request to delete the second snapshot that includes deleting a particular page of the second snapshot responsive to determining that the particular page is not shared between the second snapshot and the first snapshot or between the second snapshot and the third snapshot.


