Cell-Based Storage Failure Isolation via Shuffle Sharding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed systems face challenges in isolating failures within partitions, leading to reduced availability and increased latency, as the failure of one partition can render other partitions inaccessible due to shared storage resources and lack of sufficient isolation.

Innovation Solution

Implementing a cell-based storage system with shuffle sharding and a quorum consistency model, where storage nodes are distributed across different data centers and availability zones, and each partition is represented by a set of replicas, ensuring that the failure of one partition does not affect others by limiting overlap and using the best-performing replicas for access requests.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If storage resources are shared across multiple partitions to improve resource utilization, then productivity increases, but reliability deteriorates because failure of one partition can affect other partitions

Engineering Contradiction:
Improveresource utilizationVSAvoidpartition isolation
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The storage system is segmented into multiple independent cells, where each cell contains a subset of storage nodes. Partitions are assigned to specific cells, creating isolation boundaries. When a failure occurs in one cell, it does not propagate to other cells, thus maintaining reliability while allowing resource sharing within the distributed architecture.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces cell-based abstraction as an intermediary layer between storage nodes and partitions. This cell structure acts as a mediator that controls the degree of resource sharing and failure propagation. By managing which storage nodes belong to which cells and which partitions are assigned to which cells, the system achieves both resource utilization and failure isolation.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If storage nodes are distributed across multiple data centers to improve availability, then reliability increases, but device complexity increases

Engineering Contradiction:
ImproveavailabilityVSAvoidsystem architecture
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The distributed storage system is segmented into cells that can be independently managed and deployed across different data centers. Each cell is a self-contained unit with its own storage nodes, reducing the complexity of managing distributed systems by creating modular, manageable units that can be replicated across locations.

Inventive Principle:
Principle #1Segmentation

3Reliability

If replicas are distributed across multiple storage nodes to improve fault tolerance, then reliability increases, but latency increases due to coordination overhead

Engineering Contradiction:
Improvefault toleranceVSAvoidaccess latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements a quorum-based access model where read operations can succeed with partial replicas available. Instead of requiring coordination across all replicas, the system accepts responses from a quorum subset, reducing latency while maintaining fault tolerance. This partial action approach allows operations to complete faster by not waiting for excessive coordination.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11886309B2Cell-based storage system with failure isolation
Publication Date: 2024.01.30 AMAZON TECH INC
  • US11886309B2 patent drawing
  • US11886309B2 patent drawing
  • US11886309B2 patent drawing

AI summary

Methods, systems, and computer-readable media for a cell-based storage system with failure isolation are disclosed. A first subset of storage nodes is selected from a set of storage nodes of a data store and assigned to a first partition of data. Replicas of the first partition are stored using the first subset. A second subset of storage nodes is selected from the set of storage nodes and assigned to a second partition of data. The second subset is selected based (at least in part) on the membership of the first subset, and the second subset comprises at least one node not present in the first. Replicas of the second partition are stored using the second subset. Access requests associated with the first partition are routed to the first subset of storage nodes. Access requests associated with the second partition are routed to the second subset of storage nodes.