Distributed Data Grid Resolver for Persistent Store Versioning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern computing systems face challenges in supporting persistence and integrity in distributed data grids due to increased user demand and transaction volumes, leading to data loss and performance issues during restarts and failures.

Innovation Solution

A distributed data grid system that uses a persistence layer to store cache content in shared storage or local disks, with a resolver selecting the most recent valid version of partitions and coordinating recovery across members to ensure data integrity and minimize performance impact, employing a recovery quorum and asynchronous messaging for efficient data management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If persistence is implemented in a distributed data grid to prevent data loss, then data reliability is improved, but system complexity increases due to version management and coordination overhead

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

Solution Approach 1:

A resolver component is introduced as an intermediary that coordinates partition recovery across distributed members. The resolver receives identifiers from multiple members, selects the most recent valid version, and determines which member should recover the partition, thereby managing the complexity of persistence coordination centrally while maintaining distributed reliability

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system performs preliminary actions by pre-selecting and validating partition identifiers before recovery operations. The resolver identifies and validates the most recent valid version of each partition in advance, ensuring data integrity is established before actual recovery begins, which prevents data loss while maintaining organized complexity

Inventive Principle:
Principle #10Preliminary action

2Manufacturing precision

If the system selects and validates partition versions to ensure data integrity, then data quality is improved, but recovery time increases due to validation overhead

Engineering Contradiction:
Improvedata qualityVSAvoidrecovery time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

Members autonomously provide their own partition identifiers and validity information to the resolver without requiring external validation. Each member self-reporting its persisted partitions enables the resolver to quickly aggregate and validate information across the distributed system, improving data quality through collective self-verification while minimizing coordination time

Inventive Principle:
Principle #25Self-service

3Reliability

If the system coordinates recovery across multiple members to ensure consistency, then system reliability is improved, but performance decreases due to communication overhead

Engineering Contradiction:
Improvesystem reliabilityVSAvoidperformance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The recovery coordination is segmented into distinct phases: members independently identify their persisted partitions, the resolver aggregates identifiers and selects valid versions, and finally recovery is assigned to specific members. This segmentation allows parallel execution of identifier collection and validation, improving system reliability through coordinated recovery while maintaining performance by avoiding sequential bottlenecks

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10817478B2System and method for supporting persistent store versioning and integrity in a distributed data grid
Publication Date: 2020.10.27 ORACLE INT CORP
  • US10817478B2 patent drawing
  • US10817478B2 patent drawing
  • US10817478B2 patent drawing

AI summary

A system and method can support recovery of persisted data from persistent storage of a distributed data grid, and provide persistent store versioning and integrity. A coordinator in the distributed data grid can receive a plurality of identifiers from one or more members of the distributed data grid, wherein each said identifier is associated with a persisted partition in a persistent storage for the distributed data grid. Then, the coordinator can select an identifier for each partition, wherein each selected identifier is associated with a most recent valid version of a partition. Furthermore, the coordinator can determine an active member in the distributed data grid that is responsible for recovering said partition from a persisted partition associated with the selected identifier.