Adaptive Backup Sharding for I/O Throttling and Deduplication
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Data management systems face challenges in managing data backups due to input/output (I/O) throttling in cloud storage environments, particularly when handling a large number of small-sized items, leading to backup slowness and failures, and duplicative copies across shards limit deduplication performance.
Innovation Solution
The system maps computing objects of specific application types to a limited number of shards based on the highest number of snappables, optimizing deduplication while minimizing shards per application and reducing I/O throttling by using an adaptive sharding approach.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If data is divided into many shards to avoid I/O throttling, then I/O performance is improved, but deduplication performance deteriorates due to duplicative copies across shards
Solution Approach 1:
The system segments data into shards for parallel processing to avoid I/O throttling, but applies deduplication algorithms across all shards to identify and eliminate duplicative copies. This segmentation approach allows the system to maintain both parallel processing benefits and deduplication effectiveness by treating shards as distributed units that can be processed independently while still enabling global deduplication analysis.
Solution Approach 2:
The system merges deduplication operations across multiple shards by implementing a cross-shard deduplication mechanism. This allows the system to combine data from different shards for comprehensive deduplication analysis, ensuring that duplicative copies are identified and eliminated regardless of which shard they reside in, thereby maintaining high deduplication performance while utilizing multiple shards for parallel processing.
2Quantity of substance
If the number of shards is increased to handle large volumes of data, then storage capacity is improved, but resource usage increases
Solution Approach 1:
The system implements dynamic shard management where the number and configuration of shards are adjusted based on current workload demands and data characteristics. This dynamic approach allows the system to optimize resource usage by creating or consolidating shards as needed, rather than maintaining a fixed large number of shards, thereby achieving high storage capacity while minimizing unnecessary resource consumption.
Solution Approach 2:
The system changes key parameters such as shard size, number of shards, and data distribution strategies based on workload analysis and performance metrics. By dynamically adjusting these parameters, the system can optimize the balance between storage capacity and resource usage, ensuring that shards are created and maintained only when necessary for handling large volumes of data efficiently.
3Productivity
If data is distributed across multiple shards, then I/O throughput is improved, but system complexity increases
Solution Approach 1:
The system introduces intermediary components such as a shard management layer and coordination mechanisms that mediate between the distributed shards and the rest of the system. These intermediaries handle complex tasks such as shard allocation, data routing, and coordination of deduplication operations across shards, thereby enabling high I/O throughput through multiple shards while abstracting and managing the underlying system complexity.
Data Source
AI summary
Methods, systems, and devices for data management are described. The method may include determining, by a backup management system and for computing objects that are each associated with a respective application, respective quantities of computing objects associated with each application, determining a quantity of shards to use to back up the computing objects based on an upper limit and a first respective quantity of computing objects for a first application having a highest respective quantity of computing objects, mapping computing objects associated with the first application to each shard, mapping computing objects associated with the other applications to a respective subset of the shards based on the respective quantity of computing objects for the other application and the upper limit, and causing the set of computing objects to be backed up to the quantity of shards of the storage system in accordance with the mapping.


