Block Control Layer Bitmap Segmentation for Storage Space Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing storage systems face inefficiencies in managing free space, particularly when dealing with variable-sized objects, as traditional methods like allocation bitmaps and extent lists become cumbersome and resource-intensive, especially during large volume operations and de-allocation processes.
Innovation Solution
A method utilizing a block control layer that employs a data structure to map logical addresses to physical storage blocks, allowing for efficient space allocation and de-allocation by using bitmaps only for necessary entries, reducing the need for large bitmaps and minimizing I/O operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If allocation bitmaps are used to track allocated and free blocks, then space allocation can be monitored, but searching for large contiguous chunks of free space becomes extremely inefficient and bitmaps become too large for high capacity volumes
Solution Approach 1:
The patent divides the volume into multiple regions, each with its own allocation bitmap. This segmentation allows the system to maintain accurate space allocation monitoring while reducing the size of individual bitmaps and improving search efficiency, as only relevant regions need to be scanned rather than the entire volume.
Solution Approach 2:
The patent introduces a hierarchical structure with region-level bitmaps and block-level bitmaps, adding a dimensional layer to the traditional flat bitmap approach. This multi-level hierarchy enables efficient search by first examining region-level summaries before drilling down to block-level details, significantly improving productivity for large capacity volumes.
2Quantity of substance
If extent lists are used to organize free space, then compression and memory usage are improved, but they can grow to be larger than bitmaps when storage is heavily utilized by small allocations
Solution Approach 1:
The patent segments the free space management into region-level extent lists and block-level bitmaps. This segmentation allows the system to use extent lists for compression where beneficial while falling back to bitmaps for simple, direct representation, balancing memory efficiency with structural simplicity across different storage conditions.
Solution Approach 2:
The patent dynamically changes the representation parameter based on storage conditions. When storage is heavily utilized by small allocations, the system switches from using extent lists to using bitmaps, optimizing the data structure parameter to match the actual usage pattern and avoiding unnecessary complexity.
3Measurement precision
If traditional bitmaps are used for de-allocation, then allocated space can be tracked, but de-allocation of large amounts of data requires reading, modifying, and writing back millions of bitmaps which is extremely time-consuming
Solution Approach 1:
The patent segments the bitmap into region-level structures that track allocation status at a coarser granularity. During de-allocation, the system first updates the region-level bitmap, which immediately reflects the changed state without requiring updates to every individual block-level bitmap, dramatically reducing the time required for large de-allocation operations.
Solution Approach 2:
The patent performs preliminary updates at the region level before block-level updates are necessary. By maintaining region-level summaries that capture the essential allocation state, the system prepares advance information that eliminates the need to scan and update every individual bitmap entry during de-allocation, saving significant time.
Data Source
AI summary
A request for obtaining a space allocation descriptor is received by a block control layer of a storage system. The space allocation descriptor is indicative of one or more logical blocks free for allocation within a range of logical addresses. The range of logical addresses is included within a logical address space related to an upper layer application which has issued the request. The space allocation descriptor is provided by using a data structure included in the block control layer and operative to map between the logical address space and allocated storage blocks within a physical storage space, managed by the block control layer.


