Storage Chunk Allocation Order for Large-Write Flush Contention
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data storage systems face challenges in efficiently handling large write operations due to limitations in write-bandwidth, contention issues during flush processes, and non-consecutive logical block address allocations, leading to increased latency and overhead.
Innovation Solution
Implementing a system that allocates storage chunks in a specific order, maintains a mapping table for logical addresses, and uses volume-consecutive allocations to ensure that data for consecutive logical addresses is stored in the same physical block, reducing contention and optimizing flush processes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If storage chunks are allocated from the main list in conventional order, then allocation simplicity is maintained, but write latency increases due to non-consecutive logical block address allocations
Solution Approach 1:
The system pre-generates a main list of storage chunks in advance, organizing them in a specific order before allocation occurs. This preliminary organization enables consecutive logical block address allocations without requiring complex real-time allocation logic, thereby reducing write latency while maintaining manageable complexity
Solution Approach 2:
The storage system divides the storage space into discrete chunks that are organized in the main list. Each chunk can be independently allocated to consecutive logical block addresses, enabling efficient sequential allocation that reduces write latency without requiring complex coordinated allocation across the entire storage space
2Adaptability or versatility
If multiple hosts access the same data storage system simultaneously, then resource sharing is enabled, but contention issues arise during flush processes
Solution Approach 1:
The system segments the storage chunks into individually allocable units with dedicated mappings. This segmentation allows different hosts to access and flush data to different chunks simultaneously without contention, as each chunk can be independently managed and flushed without interfering with other hosts' operations
Solution Approach 2:
The mapping table acts as an intermediary between logical block addresses and physical storage chunks. It enables multiple hosts to access the storage system simultaneously by translating their logical address requests to specific physical chunks, coordinating access without direct contention on the flush processes themselves
3Productivity
If conventional allocation methods are used, then implementation simplicity is maintained, but overhead increases due to non-consecutive allocations
Solution Approach 1:
The main list of storage chunks is pre-generated and organized in a specific order before allocation occurs. This preliminary organization enables consecutive logical block address allocations, improving write performance by eliminating the overhead of managing non-consecutive allocations, while the pre-computed list keeps the allocation management simple
Data Source
AI summary
Techniques of the present disclosure can include: identifying blocks of storage available for allocation; generating a list denoting an allocation order of storage chunks of the blocks; receiving a write I/O operation that writes data to a first logical address; allocating a storage chunk in accordance with the allocation order of the list, wherein a first block includes the storage chunk and a second storage chunk; storing the first data in the storage chunk of the first block; removing the second storage chunk from the list; and creating a mapping between the first logical address and the first block indicating the second storage chunk is reserved for storing content written to a logical address included in a volume logical address range comprising the first logical address. The allocation order can spread allocation distance between blocks and chunks of the same block to avoid contention during flushes.


