Transactional Eventing Service for Distributed Log-Based Datastores

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Implementing ACID-compliant transactions and saga transactions in distributed log-based append-only datastores is difficult, error-prone, and requires significant effort from application developers, especially when dealing with multiple streams across different shards.

Innovation Solution

A transactional eventing service is implemented with built-in support for ACID semantics, utilizing a transaction coordinator and transaction buffer to manage ACID transactions across multiple streams, and providing optimistic concurrency control to ensure write consistency and serializable isolation, allowing for atomicity, consistency, isolation, and durability across multiple shards.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If ACID transactions are implemented in distributed log-based append-only datastores, then data consistency and reliability are improved, but implementation complexity and error-proneness increase significantly

Engineering Contradiction:
Improvedata consistencyVSAvoidimplementation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

A transaction coordinator is introduced as an intermediary component that manages ACID transactions across multiple shards. The coordinator receives transaction requests, coordinates the transaction lifecycle including buffering events in a transaction buffer, and ensures atomic commit or abort across distributed streams, thereby simplifying the implementation complexity for developers while maintaining strong data consistency

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system segments transactions into discrete events that are buffered and processed atomically. Each transaction is divided into individual event records stored in a transaction buffer, allowing the system to manage complex distributed transactions through simple, manageable event units that can be committed or aborted as a group, reducing implementation errors

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If ACID transactions support multiple streams across different shards, then transactional workload capability is improved, but resource intensity and complexity increase

Engineering Contradiction:
Improvemulti-stream transaction supportVSAvoidresource intensity
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The transaction coordinator serves multiple functions: it coordinates transactions across single or multiple shards, buffers events in a shared transaction buffer, manages commit/abort operations, and provides optimistic concurrency control. This multi-functional design allows the system to support versatile multi-stream transactions without proportionally increasing resource consumption, as the same infrastructure handles various transaction scenarios

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

3Reliability

If optimistic concurrency control is implemented, then write consistency and serializable isolation are improved, but system complexity increases

Engineering Contradiction:
Improvewrite consistencyVSAvoidconcurrency control complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system implements optimistic concurrency control where transactions proceed without explicit locking, and consistency is ensured through event conditions evaluated during commit. Each transaction independently checks whether its events can be committed based on current stream state, eliminating the need for complex inter-transaction coordination mechanisms while maintaining serializable isolation

Inventive Principle:
Principle #25Self-service

4Ease of operation

If saga transactions are supported with built-in ACID semantics, then developer effort is reduced, but system complexity increases

Engineering Contradiction:
Improvedeveloper effortVSAvoidsystem complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The system merges saga transaction patterns with ACID semantics by integrating event buffering, conditional commit logic, and compensating action support into the transaction coordinator. This unified approach allows developers to write simple saga transactions without implementing complex compensating logic manually, as the system automatically manages the saga lifecycle including retry and compensation mechanisms through the same transaction coordination infrastructure

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11874822B1Multi-stream transactional event processing in a distributed log-based append-only datastore
Publication Date: 2024.01.16 AMAZON TECH INC
  • US11874822B1 patent drawing
  • US11874822B1 patent drawing
  • US11874822B1 patent drawing

AI summary

Techniques for multi-stream transactional event processing under ACID semantics in a distributed log-based append-only datastore are described. A transaction coordinator writes events that are part of a transaction to a transaction buffer, where the events can be made visible to clients involved in the transaction while other clients are not aware. Upon committing the transaction, an optimistic concurrency control based technique is utilized to attempt to obtain locks on all events involved in the transaction across one or multiple shards by one or multiple designated writer nodes. When all involved writer nodes indicate that they are able to commit their events, the transaction can be committed.