Distributed Key-Value Storage Fault Tolerance via Concatenated Replicas
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
2Reliability
If traditional replication methods are used to ensure fault tolerance, then system reliability is improved, but system complexity and overhead increase
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
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
3Reliability
If data is replicated across multiple machines to survive failures, then system reliability is improved, but data transfer time and downtime increase
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
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
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
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
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
Data Source
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.


