Extent-Based B-Tree Insertion for Snapshot Lock Contention
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional data storage systems face high lock contention and resource overhead due to individual locking and updating of B-tree data structures for each block copy from the production file system to the snapshot area, especially in multi-threaded environments.
Innovation Solution
Implementing a lock on the B-tree structure while updating with multiple mappings during the copying of contiguous data blocks, allowing for a single extent-based B-tree insertion operation that aggregates consecutive file system blocks into an extent, reducing the number of insertion operations and lock contention.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If individual locking and updating of B-tree sections is performed for each block copy, then data consistency is maintained, but lock contention and resource overhead increase significantly
Solution Approach 1:
The patent merges multiple individual B-tree update operations into a single batched update operation. Instead of locking and updating the B-tree for each individual block copy, the system accumulates multiple mapping pairs and performs a single bulk insertion operation, thereby reducing lock contention and management overhead while maintaining data consistency.
Solution Approach 2:
The patent performs preliminary accumulation of mapping pairs before executing the B-tree update operation. Multiple block mappings are collected and prepared in advance, then inserted into the B-tree structure in a single operation, eliminating the need for repeated locking and unlocking cycles.
2Stability of the object's composition
If individual B-tree insertion operations are performed for each block, then the B-tree structure remains well-organized, but insertion pressure and processing time increase
Solution Approach 1:
The patent combines multiple individual insertion operations into a single batched insertion operation. Multiple mapping pairs are inserted into the B-tree simultaneously in one operation, reducing the total number of insertion operations and improving efficiency while maintaining the structural integrity of the B-tree through proper bulk insertion algorithms.
Solution Approach 2:
The patent enables continuous accumulation of mapping pairs without interruption by individual insertion overhead. The system continuously collects block mappings in memory and performs periodic bulk insertions, maintaining high throughput and avoiding the stop-start nature of individual insertion operations.
3Productivity
If multiple threads update the B-tree simultaneously with individual operations, then parallel processing capability is utilized, but lock contention increases and system resources are consumed
Solution Approach 1:
The patent merges multiple thread operations into coordinated batched updates. Multiple threads can accumulate their respective mapping pairs independently, then synchronize and perform bulk insertions in a coordinated manner, reducing the frequency of lock acquisitions and minimizing lock waiting time while preserving parallel processing benefits.
Data Source
AI summary
A technique manages access to a B-tree structure within a data storage apparatus. The B-tree structure maintains mappings of data blocks of a file system to data blocks of a snapshot storage area. The technique involves imposing a lock on the B-tree structure in response to a snapshot operation which copies a contiguous range of file system data blocks to a set of snapshot data blocks to save primary data of the file system as snapshot data. The technique further involves inserting multiple objects into the B-tree structure while the lock is imposed, each object including a key value which (i) identifies a respective file system data block of the contiguous range and (ii) operates as a search key to facilitate searching of nodes of the B-tree structure. The technique further involves releasing the lock imposed on the B-tree structure after the objects have been inserted into the B-tree structure.


