Distributed Block Storage Write Performance via Client-Side Striping
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In distributed block storage systems, the primary storage node often becomes a data write bottleneck, leading to increased data exchange between storage nodes and degraded write performance.
Innovation Solution
The method eliminates the need for a primary storage node by allowing clients to divide data into strips and send them directly to corresponding storage nodes, reducing data exchange and improving write concurrency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a primary storage node is used to receive data from clients and distribute it to other storage nodes, then data storage can be achieved, but the primary storage node becomes a bottleneck and write performance deteriorates
Solution Approach 1:
The patent extracts the primary storage node from the system architecture. Clients directly send data to target storage nodes without routing through a primary node, eliminating the bottleneck and reducing unnecessary data exchange between storage nodes.
Solution Approach 2:
Storage nodes autonomously determine their roles as primary or secondary based on data strip location. Each storage node independently handles data reception and distribution decisions, eliminating the need for a centralized primary storage node that coordinates all operations.
2Quantity of substance
If data is sent through a primary storage node to other storage nodes, then data distribution is achieved, but data exchange between storage nodes increases
Solution Approach 1:
The patent removes the primary storage node intermediary from the data distribution path. Clients directly transmit data to target storage nodes, eliminating redundant data copying and exchange operations between storage nodes that occur in traditional architectures.
Solution Approach 2:
Instead of data flowing from primary storage node to secondary nodes, the architecture inverts the flow direction: clients directly send data to the storage node that will ultimately store it, reversing the traditional hierarchical data distribution pattern.
Data Source
Figure 1~3
Figure 4~5
Figure 6~7
AI summary
This solution discloses a method for storing data in a distributed block storage system. A client generates data of a stripe, and concurrently sends data of strips in the stripe to storage nodes corresponding to the strips, so as to reduce data exchange between the storage nodes, and improve write concurrency, thereby improving write performance of the distributed block storage system.