Chronicle Technique for Persistent Concurrent Data Structures

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems for persistent data structures lack composability and fail to ensure data integrity during failures, leading to potential data loss when operations are interrupted at boundaries, which is not addressed by existing correctness conditions like linearizability or consistent durability.

Innovation Solution

The introduction of the 'chronicle' technique, which maintains a persistent history of operations to ensure strict failure resilience, allowing for recovery and composability by logging all method calls and their outcomes, enabling data structures to handle failures without data loss and ensuring correct recovery.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If ad hoc data structures are used for persistent memory, then simplicity of implementation is improved, but data integrity during failures deteriorates

Engineering Contradiction:
Improvesimplicity of implementationVSAvoiddata integrity during failures
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The patent applies preliminary action by logging all data structure operations to a persistent chronicle before they are completed. This pre-logging mechanism ensures that even if a failure occurs during operation execution, the operation history is already recorded and can be used for recovery, thus maintaining data integrity without requiring complex transactional mechanisms.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The chronicle structure serves as an intermediary between the data structure operations and persistent memory. Instead of directly managing complex persistence semantics, the chronicle mediates by recording operations in a simple append-only fashion, which can then be replayed or rolled back as needed, simplifying implementation while ensuring reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If memory transactions are used for persistent data structures, then data integrity is improved, but bookkeeping overhead increases

Engineering Contradiction:
Improvedata integrityVSAvoidbookkeeping overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the complexity of transaction management from the data structure operations themselves. By separating the logging function into a dedicated chronicle component, individual operations remain simple while the chronicle handles persistence concerns centrally, reducing bookkeeping overhead in the critical data structure paths.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of using heavy-weight transaction commit mechanisms, the patent discards the need for complex transaction coordination by using a log-based approach. Operations are logged to the chronicle and can be recovered by replaying the log, eliminating the need for sophisticated transaction management infrastructure.

Inventive Principle:
Principle #34Discarding and recovering

3Manufacturing precision

If existing correctness conditions like linearizability are applied, then operational correctness is improved, but composability during failures deteriorates

Engineering Contradiction:
Improveoperational correctnessVSAvoidcomposability during failures
Core Design Contradiction:
Manufacturing precisionVSAdaptability or versatility

Solution Approach 1:

The chronicle logs operations with their invocation and return events in advance, creating a complete history before any failure can occur. This preliminary recording enables post-failure analysis and recovery without requiring the data structure to maintain complex state information about ongoing operations, thus improving composability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The chronicle provides feedback about the actual execution history of operations, including those that may have been interrupted. By comparing the chronicle history with the current state, the system can detect and recover from failures, enabling composability across failure boundaries while maintaining operational correctness.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10007581B2Systems and methods for constructing composable persistent data structures
Publication Date: 2018.06.26 ORACLE INT CORP
  • US10007581B2 patent drawing
  • US10007581B2 patent drawing
  • US10007581B2 patent drawing

AI summary

A technique referred to as “data structure chronicles” is described that may be used to build strictly failure resilient persistent concurrent data structures. A “chronicle” maintains a persistent history of operations invoked on a persistent data structure that can be replayed to recover the current consistent state of the data structure after a failure. The chronicle technique may also enable composability of data structure operations with the enclosing application. In addition, the chronicle technique is non-blocking, a desirable progress condition for concurrent data structures. A lock free, non-blocking chronicle stack algorithm is described that may outperform a lock-based implementation in the presence of high contention. In addition, a lock free, non-blocking chronicle queue algorithm is described.