Log-Based Concurrency Control for Distributed State Consistency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed computing environments, managing application state changes becomes challenging due to increased failure events, network latency, and complexity, with traditional techniques either causing performance bottlenecks or requiring 'stop-the-world' pauses, which are problematic for latency-sensitive applications.

Innovation Solution

A dynamic directed acyclic graph (DAG) of replication nodes is established to manage application state changes, allowing for fault-tolerant and asynchronous propagation of state transitions without the need for synchronization, using acceptor, intermediary, and committer nodes, and a configuration manager that propagates configuration-delta messages asynchronously.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If locking mechanisms are used to manage application state changes, then consistency of state information is improved, but application performance deteriorates due to performance bottlenecks

Engineering Contradiction:
Improveconsistency of state informationVSAvoidapplication performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the locking mechanism from the state management process entirely. Instead of using locks to ensure consistency, the system uses a log-based approach where state changes are recorded sequentially and applied asynchronously to multiple replicas. This eliminates the performance bottleneck caused by locking while maintaining consistency through the sequential log application process.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a log structure as an intermediary between the primary node and replica nodes. The log captures state changes in a sequential manner and serves as a mediator that allows replicas to apply changes asynchronously without requiring locks on the actual state data. This intermediary mechanism enables both consistency and high performance.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If locking mechanisms are used to manage application state changes, then consistency of state information is improved, but system complexity increases

Engineering Contradiction:
Improveconsistency of state informationVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent removes the complex locking protocol from the system. Instead of implementing distributed locks, wait-for graphs, or other complex synchronization mechanisms, the system uses a simple sequential log structure that naturally ensures consistency without requiring complex coordination between nodes.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent changes the fundamental parameter of state management from synchronous locking to asynchronous log application. By changing how state changes are propagated (from locked updates to sequential log events), the system achieves consistency with much lower complexity.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If state information is propagated among application components, then consistency is improved, but application operations must pause during propagation

Engineering Contradiction:
Improveconsistency of state informationVSAvoidstop-the-world periods
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary action by recording all state changes in a log structure before propagating them to replicas. The primary node captures state changes sequentially in the log without pausing application operations. Replicas then apply these pre-recorded changes asynchronously, eliminating the need for stop-the-world periods while maintaining consistency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent enables continuous operation of the primary node by decoupling the application execution from the state propagation process. The primary node continues to accept and record state changes in the log without interruption, while replicas continuously apply changes from the log in the background, maintaining both consistency and operational continuity.

Inventive Principle:
Principle #20Continuity of useful action

4Reliability

If state information is propagated among application components, then consistency is improved, but application responsiveness deteriorates for latency-sensitive workloads

Engineering Contradiction:
Improveconsistency of state informationVSAvoidapplication responsiveness
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent records state changes in a log structure as preliminary action before propagation occurs. This allows the primary node to immediately acknowledge client requests without waiting for replicas to synchronize, maintaining high responsiveness. Replicas then apply changes asynchronously from the log, ensuring consistency without impacting the primary node's response time to clients.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The log structure serves as an intermediary that decouples the primary node from replica synchronization. The primary node writes to the log immediately, providing fast responses to clients, while the log itself acts as a buffer that replicas consume at their own pace. This intermediary mechanism maintains both responsiveness and consistency.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9619278B2Log-based concurrency control using signatures
Publication Date: 2017.04.11 AMAZON TECH INC
  • US9619278B2 patent drawing
  • US9619278B2 patent drawing
  • US9619278B2 patent drawing

AI summary

A transaction request is received at a log-based transaction manager, indicating a conflict check delimiter and a read set descriptor indicative of one or more locations from which data is read during the requested transaction. Using the conflict check delimiter, a subset of transaction records stored in a particular persistent log to be examined for conflicts prior to committing the requested transaction is identified. In response to determining that none of the read locations of the requested transaction correspond to a write location indicated in the subset of transaction records, a new transaction record is stored in the particular persistent log indicating that the requested transaction has been committed.