Distributed Key-Value Storage Fault Tolerance via Concatenated Replicas

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed systems face challenges in maintaining data availability and minimizing downtime when machines fail, as they require complex replication and data transfer processes, which can lead to increased network bandwidth usage and overhead.

Innovation Solution

The system implements a method where machines store primary and secondary replicas of key-value pairs across an ordered sequence, allowing for the concatenation of adjacent key segments when a machine becomes inactive, reducing data transfer and enabling dynamic adjustment of key segments and server capacity without shutting down physical servers. This involves generating a concatenated replica and notifying other machines of its availability, as well as dynamically inserting new machines into the system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If complex replication and data transfer processes are implemented to maintain data availability when machines fail, then data availability is improved, but network bandwidth usage and system overhead increase

Engineering Contradiction:
Improvedata availabilityVSAvoidnetwork bandwidth usage
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The system pre-establishes replication chains across multiple machines before failures occur. Each machine maintains both primary and secondary replicas of key segments, so that when a machine fails, the replicated data is already available on neighboring machines, eliminating the need for complex real-time data transfer and reducing network bandwidth consumption during failure recovery

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system divides the distributed key-value store into multiple key segments, with each segment replicated across a chain of machines. This segmentation allows failures to be isolated to specific segments while maintaining availability of other segments, reducing the overall network overhead compared to replicating entire datasets across all machines

Inventive Principle:
Principle #1Segmentation

2Reliability

If traditional replication methods are used to ensure fault tolerance, then system reliability is improved, but system complexity and overhead increase

Engineering Contradiction:
Improvefault toleranceVSAvoidsystem overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Each machine in the replication chain serves multiple functions: it acts as a primary replica for its own key segment, a secondary replica for the previous segment, and propagates updates for both directions. This multi-functionality reduces the number of dedicated backup machines needed, simplifying the overall system architecture while maintaining fault tolerance

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system merges the roles of primary and secondary replicas into a unified replication chain structure. Updates to key segments are propagated bidirectionally through the chain, combining data replication and synchronization operations into a single coordinated process, thereby reducing protocol overhead and simplifying failure recovery procedures

Inventive Principle:
Principle #5Merging (Combining)

3Reliability

If data is replicated across multiple machines to survive failures, then system reliability is improved, but data transfer time and downtime increase

Engineering Contradiction:
Improvefailure survival capabilityVSAvoiddowntime
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Replication chains are established and data is pre-replicated across multiple machines before failures occur. When a machine fails, the system can immediately switch to using data from neighboring machines in the replication chain, eliminating the need for time-consuming data recovery operations and minimizing downtime

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates multiple copies of key segments across the replication chain, where each machine holds both primary and secondary replicas. This copying strategy ensures that if any machine fails, identical or near-identical data is immediately available on adjacent machines, enabling rapid failover without data transfer delays

Inventive Principle:
Principle #26Copying

4Stability of the object's composition

If fixed key segment assignments are used on physical servers, then system stability is improved, but adaptability to capacity changes is reduced

Engineering Contradiction:
Improvesystem stabilityVSAvoidcapacity adjustment flexibility
Core Design Contradiction:
Stability of the object's compositionVSAdaptability or versatility

Solution Approach 1:

The system implements dynamic key segment assignments within the replication chain framework. While maintaining stable replication relationships, the system can dynamically adjust which key segments are assigned to which machines based on capacity changes, allowing physical servers to be added, removed, or resized without requiring complete system reconfiguration

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

By dividing the key-space into multiple independent segments that can be independently assigned and reassigned within replication chains, the system maintains stability at the replication level while enabling flexibility at the segment assignment level, allowing capacity adjustments without disrupting overall system operation

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9569517B1Fault tolerant distributed key-value storage
Publication Date: 2017.02.14 GOOGLE LLC
  • US9569517B1 patent drawing
  • US9569517B1 patent drawing
  • US9569517B1 patent drawing

AI summary

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for handling faults in a distributed key-value storage system. One of the methods includes receiving an indication that a machine storing a primary replica of a first replication chain is inactive, in response to receiving the indication, generating a concatenated replica comprising a first replica of the first replication chain and a second replica of a second replication chain, the second replication chain comprising replicas of a second key segment, the second key segment being adjacent to the first key segment in the multiple key segments of the plurality of keys, and providing, to another machine in the ordered sequence of machines, a notification of availability of the concatenated replica.