Transactional Cache Versioning in Distributed Data Grids

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed systems, maintaining transactional consistency and ordering of events is challenging due to the difficulty in synchronizing global timestamps, which affects the reliable processing of transactions and data consistency across multiple servers.

Innovation Solution

A transaction framework that uses Lamport Timestamps for partial ordering of events within a distributed data grid, where each transaction coordinator maintains a commit version and local current versions across cluster members, ensuring consistent read isolation and transactional integrity without requiring a global clock.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a global timestamp is used to order events in a distributed system, then transaction ordering and consistency can be maintained, but it becomes extremely difficult to synchronize the distributed processes perfectly

Engineering Contradiction:
Improvetransaction consistencyVSAvoidsynchronization complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the global timestamp problem into local timestamp generators at each node. Each node maintains its own monotonically increasing timestamp counter independently, eliminating the need for global synchronization while still enabling event ordering within and across nodes through the distributed timestamp assignment mechanism

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces version identifiers as an intermediary mechanism that mediates between distributed nodes without requiring direct timestamp synchronization. These version identifiers are attached to cached data and used to determine staleness and ordering, serving as a mediator that resolves consistency issues without complex synchronization protocols

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If version identifiers are attached to cached data to track updates, then data consistency can be maintained, but additional memory overhead is required to store and manage these version identifiers

Engineering Contradiction:
Improvedata consistencyVSAvoidmemory overhead
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges the version identifier with the cached data entry itself rather than storing them as separate structures. The version identifier is integrated into the cache entry format, allowing consistency tracking without proportional increases in memory overhead, as the version data is combined with the existing data structure

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The cached data entries self-manage their version identifiers through the attachment mechanism. Each cache entry carries its own version information that automatically updates with data modifications, eliminating the need for separate version management systems and reducing overall memory requirements

Inventive Principle:
Principle #25Self-service

3Reliability

If the transaction coordinator maintains commit versions for each transaction, then transaction isolation can be ensured, but the coordination overhead and communication between nodes increases

Engineering Contradiction:
Improvetransaction isolationVSAvoidtransaction processing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary version assignment at the time of data caching, so that when transactions occur, the version information is already available. This preliminary action eliminates the need for complex version negotiation during transaction execution, reducing coordination overhead and improving processing efficiency

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses version identifiers as feedback mechanisms that provide immediate information about data staleness and transaction state. This feedback allows the transaction coordinator to make quick decisions about transaction isolation and commitment without extensive communication rounds, improving overall transaction processing efficiency

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9201685B2Transactional cache versioning and storage in a distributed data grid
Publication Date: 2015.12.01 ORACLE INT CORP
  • US9201685B2 patent drawing
  • US9201685B2 patent drawing
  • US9201685B2 patent drawing

AI summary

A set of techniques are described for transactional cache versioning and data storage in a distributed data grid environment. A transaction coordinator maintains a commit version for each transaction. This version is updated over the course of the transaction. In addition, each cluster member maintains a local current version that is updated as messages are received from the client. When a client serving as a transaction coordinator sends a message, the transaction coordinator includes an associated transaction's current version value with the message. On receiving a message, the receiving member process sets its current version to be the maximum of its own value and the received value. The receiving member process includes its current version in the return message to the sender. On receiving the return messages, the client sets the transaction's commit version to be greater than the maximum of its own value and the received value.