Key-Value Store Transaction Tracking via Optimistic Concurrency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data management systems in electronic commerce and services face delays and failures due to inefficiencies in transaction execution, particularly in updating and retrieving data from key-value stores, which can impact operations and customer experiences.

Innovation Solution

Implementing a key-value store system that tracks transaction status using transaction objects, ensuring atomicity, consistency, isolation, and durability, and supporting conditional put operations to manage data updates and retrievals effectively.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional data management systems are used for transaction processing, then data can be stored and accessed, but delays and failures occur during transaction execution which adversely affect operations

Engineering Contradiction:
Improvetransaction execution reliabilityVSAvoidtransaction processing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments transaction processing into distinct phases: reading data objects, evaluating read results against write conditions, and committing or aborting write transactions. This segmentation allows for more granular control and reduces blocking, as not all transactions need to wait for all other transactions to complete. The key-value store divides data into independent data objects that can be processed individually, improving throughput and reducing overall transaction processing time while maintaining reliability through proper transaction isolation.

Inventive Principle:
Principle #1Segmentation

2Productivity

If data updates are processed quickly, then system availability improves, but data integrity and consistency may be compromised

Engineering Contradiction:
Improvedata update speedVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements preliminary action by evaluating read results before committing write transactions. The system reads data objects and their associated read results in advance, evaluates whether write conditions are met (such as optimistic concurrency control conditions), and only then commits the write transaction if conditions are satisfied. This preliminary evaluation ensures data integrity is maintained while allowing rapid processing of transactions that meet the criteria, thus improving both productivity and reliability.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If transaction processing implements strict consistency checks, then data integrity is maintained, but processing delays increase

Engineering Contradiction:
Improvedata consistencyVSAvoidtransaction throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies parameter changes by dynamically adjusting consistency check intensity based on transaction type and data object characteristics. The system uses optimistic concurrency control parameters that allow transactions to proceed with minimal checking initially, and only performs full consistency validation when conflicts are detected or at commit time. This parameter-based approach maintains data consistency while maximizing transaction throughput by avoiding unnecessary checks for non-conflicting transactions.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10127270B1Transaction processing using a key-value store
Publication Date: 2018.11.13 AMAZON TECH INC
  • US10127270B1 patent drawing
  • US10127270B1 patent drawing
  • US10127270B1 patent drawing

AI summary

Techniques are described for using a distributed key-value store to store data and track transactions performed against the data. The key-value store may include data objects as files in a file system, such that the file name of a file is a key and the contents of the file is a value corresponding to the key. The key-value store may also include transaction objects that track the status of transactions to modify the data objects, the status being one of open, committed, or cancelled. Previous and updated data may be included in the value of a data object to indicate that the data object is in the process of being modified. The value may also include a transaction identifier identifying the transaction that is modifying the data object.