Data Recovery in Distributed In-Memory Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed in-memory systems face data loss due to node failures, and conventional data replication methods like 2PC protocols lead to low resource utilization and performance issues.

Innovation Solution

The method involves utilizing multiple copies of transaction definitions across nodes, with careful coordination for data recovery, allowing failed nodes to restore their state using snapshots and commit logs, without discarding requests until it's safe, thus avoiding the drawbacks of 2PC protocols.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is replicated to multiple nodes using 2PC protocol, then data reliability is improved, but system performance deteriorates due to server rounds of network communication

Engineering Contradiction:
Improvedata reliabilityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by pre-replicating transaction requests to multiple nodes before the transaction is committed. The coordinator node sends transaction requests to participant nodes in advance, and these requests are queued and held until the transaction commit is confirmed. This allows data to be prepared at multiple locations beforehand, reducing the need for slow network communication during the actual commit phase while maintaining data reliability.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If data is replicated to multiple nodes, then data reliability is improved, but resource utilization deteriorates at 1/k

Engineering Contradiction:
Improvedata reliabilityVSAvoidresource utilization
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent applies discarding and recovering by allowing temporary duplication of transaction requests during the preparation phase, then discarding these duplicate requests once the transaction is committed. The coordinator node can determine whether to discard requests based on commit status, and participant nodes can recover and execute committed transactions locally without needing to retain all duplicate copies indefinitely. This reduces resource consumption while maintaining reliability during the critical commit phase.

Inventive Principle:
Principle #34Discarding and recovering

3Productivity

If requests are discarded early to improve performance, then system performance is improved, but data integrity deteriorates in case of node failure

Engineering Contradiction:
Improvesystem performanceVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies feedback by implementing a commit status notification mechanism where the coordinator node monitors transaction commit status and provides feedback to participant nodes. When a transaction is successfully committed, the coordinator notifies participant nodes to discard their queued requests. If commit fails or a node fails, the feedback mechanism ensures requests are retained and can be recovered. This feedback loop maintains data integrity while allowing performance optimization through selective discarding of committed transaction requests.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11210185B2Method and system for data recovery in a data system
Publication Date: 2021.12.28 YAHOO ASSETS LLC
  • US11210185B2 patent drawing
  • US11210185B2 patent drawing
  • US11210185B2 patent drawing

AI summary

The present teaching relates to request management and data recovery in a data system. In one example, a failure in connection with first data is detected at a first node in a data system. Information associated with a most recent transaction related to the first node is obtained from the persistent storage. Each of other nodes in the data system is requested to transmit one or more transaction requests previously sent to the first node after the most recent transaction. The one or more transaction requests are received from at least one of the other nodes. A sequence of one or more transactions associated with the one or more transaction requests is determined. The one or more transactions are executed according to the sequence in order to recover the first data at the first node.