Data Block Utilization Tracking via Bitmaps in Storage Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Storage systems face challenges in tracking the utilization of data blocks effectively, particularly due to out-of-place updates which lead to fragmentation and the need for garbage collection, as they struggle to manage valid and invalid data items efficiently, impacting storage capacity reuse.
Innovation Solution
A data block utilization tracking system that employs a unique block ID and incremental data item ID scheme, using B+ tree and LSM tree data structures to manage metadata, ensuring efficient tracking and garbage collection by identifying valid and invalid data items, and reclaiming storage capacity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If out-of-place update scheme is employed to store updated data in new location, then data integrity is improved, but storage capacity utilization deteriorates due to fragmentation
Solution Approach 1:
The patent segments the storage space into fixed-size data blocks and segments the tracking mechanism into bitmaps for each block. This segmentation allows independent management of each block's utilization status, enabling efficient tracking without affecting overall storage capacity
Solution Approach 2:
The patent introduces bitmaps as an intermediary data structure between the physical data blocks and the logical tracking system. Each bitmap acts as a mediator that records the validity status of individual data items within a block, enabling efficient identification of reusable space without directly managing the fragmented data blocks
2Stability of the object's composition
If out-of-place updates are performed over time, then data versioning is improved, but garbage collection complexity increases
Solution Approach 1:
The bitmap structure enables self-service garbage collection by automatically tracking which data items are valid and which are invalid. The system can autonomously identify blocks with all invalid entries and reclaim them without complex external management, reducing garbage collection complexity while maintaining data versioning
Solution Approach 2:
The bitmap provides continuous feedback about the validity status of data items in each block. This feedback mechanism enables the system to make informed decisions about which blocks to reclaim and which to retain, simplifying the garbage collection process while preserving data versioning information
3Measurement precision
If bitmap tracking is implemented for each data block, then data block utilization tracking precision is improved, but metadata storage overhead increases
Solution Approach 1:
The patent applies local quality by creating bitmaps only for blocks that contain data items, rather than for all possible blocks. Each bitmap is localized to its specific block and only tracks the items within that block, providing precise tracking where needed while minimizing overall metadata overhead
Solution Approach 2:
The patent changes the parameter of tracking precision by using bitmaps that track individual data items within blocks rather than tracking entire blocks as units. This parameter change enables fine-grained utilization tracking while the bitmap structure itself remains space-efficient, storing only one bit per data item
Data Source
AI summary
A storage control system manages a utilization of data blocks of a storage volume which is partitioned into data blocks having a unique block identifier (ID) and a same block size. The storage control system receives data items and assigns a respective unique data ID to each data item, which include consecutive data IDs. The data items are written to a free data block as a whole, and a record for the written data block is inserted into a node of a first tree structure. The record includes the unique block ID of the written data block, a first data ID of the data items, and a bitmap which maps the consecutive data IDs of the data items in the written data block, starting from the first data ID, to a respective bit whose value indicates whether the data item associated with the data ID is valid or invalid.


