Distributed Storage Rebuilding with Mediator Nodes and Load Balancing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing distributed storage systems face inefficiencies in rebuilding data and redundant codes due to high internode communication bandwidth limitations and processing load imbalances, leading to prolonged downtime and performance degradation during fault recovery.
Innovation Solution
A distributed storage system and method that divides data into blocks, generates redundant codes, and distributes them across nodes, allowing for efficient reconstruction of data blocks and codes on different nodes, reducing reliance on high-bandwidth internode communication and balancing processing loads.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If all data necessary for rebuilding is transferred to the substitute node through the internode communication path, then the data can be reconstructed at the substitute node, but the time to collect necessary data becomes much longer due to low bandwidth performance
Solution Approach 1:
The patent segments the rebuilding process into two distinct phases: (1) data collection phase where only necessary data blocks are gathered from surviving nodes, and (2) data transfer phase where the reconstructed data is transferred to the substitute node. This segmentation allows the system to minimize internode communication during the time-critical data collection phase while maintaining complete data reconstruction capability.
Solution Approach 2:
The patent introduces an intermediary computing node that performs data reconstruction locally rather than requiring all data to be transferred to the substitute node first. This intermediary node acts as a temporary processing point that reconstructs data from collected blocks and then transfers only the reconstructed data to the substitute node, reducing the bandwidth burden and time required.
2Reliability
If rebuilding is executed at the substitute node, then data loss due to node faults can be recovered, but the processing load concentrates at the substitute node affecting its I/O performance
Solution Approach 1:
The patent segments the rebuilding execution across multiple nodes rather than concentrating it at the substitute node. Specifically, it identifies and utilizes surviving nodes that have both the necessary data blocks and available processing capacity to perform reconstruction. This distributes the computational load away from the substitute node, preserving its I/O performance for normal operations while still achieving fault recovery.
Solution Approach 2:
The patent enables surviving nodes to autonomously perform data reconstruction for each other without requiring centralized coordination at the substitute node. Each surviving node that has the necessary data blocks can independently reconstruct lost data and transfer it to the substitute node, reducing the processing burden on any single node while maintaining system-wide fault recovery capability.
3Adaptability or versatility
If rebuilding is executed at a non-fault-developing node with high processing load from host server I/O, then distributive rebuilding can be achieved, but rebuilding execution efficiency drops
Solution Approach 1:
The patent implements a feedback mechanism where the system monitors the processing load and I/O performance of surviving nodes before selecting them for rebuilding operations. Nodes currently experiencing high load from host server operations are identified and excluded from participating in rebuilding. This feedback-based selection ensures that rebuilding is executed only on nodes with sufficient available capacity, maintaining high rebuilding efficiency while still achieving distributive execution across multiple suitable nodes.
Data Source
AI summary
When rebuilding a data block and a second redundant code identical in content with a data block and a second redundant code stored in a storage device of one or more of nodes, on a different node, based on a first redundant code, a controller rebuilds the data block and second redundant code on a node different from a substitute node substituting for a node storing a data block or second redundant code to be rebuilt, transfers the rebuilt data block and second redundant code to the substitute node, and stores them in the storage device of the substitute node.


