Graph Partitioning for Distributed Block Device Snapshot Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Cloud-based computing resource service providers face challenges in efficiently managing and distributing computing resources as the number of snapshots and volumes grows, leading to uneven resource utilization and increased costs due to high mutation operations.

Innovation Solution

The proposed solution involves partitioning a graph representation of relationships between data structures into multiple cells to evenly distribute resource usage, using a consistent hash algorithm to assign block devices and snapshots to host collections, and reallocating resources based on mutation rates to optimize resource utilization and reduce overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If the number of snapshots and volumes in the distributed computing system grows, then the computing resource service provider can offer more services and storage capacity, but the computing resources required to service related activity become quite large and unevenly distributed

Engineering Contradiction:
Improvenumber of snapshots and volumesVSAvoidresource utilization efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The system partitions the graph representation of data structures into multiple cells, dividing the previously monolithic resource management space into manageable segments. Each cell handles a subset of block devices and snapshots, enabling parallel processing and preventing any single resource from becoming a bottleneck. This segmentation directly addresses the uneven resource distribution problem by spreading the load across multiple cells.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If more snapshots and volumes are generated, then the service capacity increases, but the computing resources required to service related activity become quite large

Engineering Contradiction:
Improveservice capacityVSAvoidcomputing resources required
Core Design Contradiction:
Quantity of substanceVSUse of energy by moving object

Solution Approach 1:

The system identifies 'hot' areas in the graph representation where high concentrations of mutation operations occur and routes these to specific cells optimized for handling such workloads. By applying local quality differentiation, the system ensures that resources are allocated based on actual usage patterns rather than uniformly, reducing overall computing resource requirements while maintaining service capacity.

Inventive Principle:
Principle #3Local quality

3Productivity

If the graph representation is partitioned into multiple cells, then resource usage is evenly distributed, but the complexity of managing multiple cells increases

Engineering Contradiction:
Improveresource usage distributionVSAvoidcomplexity of managing cells
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system employs a consistent hash algorithm that automatically determines which cell should handle each block device and snapshot based on their identifiers. This self-service mechanism eliminates the need for manual cell assignment and reduces management complexity, as the partitioning logic is deterministic and requires no external coordination. The algorithm naturally balances the load across cells while simplifying the management overhead.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10620866B1Representation-based partitioning of distributed computing environments
Publication Date: 2020.04.14 AMAZON TECH INC
  • US10620866B1 patent drawing
  • US10620866B1 patent drawing
  • US10620866B1 patent drawing

AI summary

A system partitions a graph representation of relationships between block devices and associated snapshots into a plurality of cells to more evenly distribute computing resource usage attributable to the block devices and snapshots. The relationships may be analyzed to determine resource usage associated with the block devices and/or the snapshots wherein the resource usage corresponds to a mutation operation rate or number of mutation operations performed (or scheduled for performance). As a result of determining that the resource usage for a given cell exceeds a predetermined threshold for resource usage, the cell may be partitioned into a plurality of cells, and a portion of the corresponding block device(s), and subsequent snapshot(s) generated therefrom, may be assigned to the new cell.