Inter-transactional Cache for Client-Server Data Consistency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In client-server systems, maintaining data consistency across cached and master data entities is challenging, especially in environments where data changes frequently, leading to increased processing overhead and network bandwidth costs, and existing methods like pessimistic and optimistic locking have limitations in managing data access and consistency.

Innovation Solution

Implementing an inter-transactional cache that complements intra-transactional caches, allowing clients to access data entities with version identifiers and lock management, ensuring data consistency by updating cached copies and managing locks effectively, thereby reducing the need for re-reading data from the repository and minimizing resource usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is cached on client systems to reduce CPU and communications link load, then system performance is improved, but data consistency between cached and master data deteriorates

Engineering Contradiction:
Improvesystem performanceVSAvoiddata consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary actions by establishing version identifiers for cached data entities before transactions occur. This allows the cache to proactively track and verify data freshness, ensuring consistency is maintained before problems arise rather than reacting after inconsistencies occur.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention implements feedback mechanisms through version identifier comparison. When clients access cached data, the system compares version identifiers between cached and master data entities, providing continuous feedback on data consistency status and triggering cache invalidation or updates when inconsistencies are detected.

Inventive Principle:
Principle #23Feedback

2Reliability

If version identifier checking is implemented to ensure data consistency, then data reliability is improved, but processing overhead increases

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

Solution Approach 1:

The invention extracts the version identifier as a separate, lightweight attribute from the full data entity. This allows consistency checking to focus on comparing only the version identifier values rather than entire data sets, significantly reducing processing overhead while maintaining reliability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system creates simplified copies of version identifier information in the cache metadata, allowing rapid comparison operations. This copying approach enables efficient consistency verification without requiring access to or processing of the complete master data entities.

Inventive Principle:
Principle #26Copying

3Loss of energy

If cached data is used to reduce network traffic and CPU load, then resource usage is reduced, but the risk of accessing stale data increases

Engineering Contradiction:
Improveresource usageVSAvoiddata staleness
Core Design Contradiction:
Loss of energyVSLoss of information

Solution Approach 1:

The system continuously monitors data freshness through version identifier comparison, providing feedback that detects when cached data becomes stale. This feedback mechanism enables the cache to automatically invalidate or refresh data entries, preventing access to outdated information while maintaining resource efficiency.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The cache establishes version identifier tracking preliminarily, before data staleness issues arise. This proactive approach allows the system to detect and prevent access to stale data through version comparison, rather than discovering data outdatedness only when consistency problems manifest.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10803047B2Accessing data entities
Publication Date: 2020.10.13 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10803047B2 patent drawing
  • US10803047B2 patent drawing
  • US10803047B2 patent drawing

AI summary

Data entities in a client-server system are accessed. The client-server system comprises a set of clients, a server system, and a repository for storing a plurality of data entities. The server system comprises an inter-transactional cache, the inter-transactional cache being accessible for each client of the set of clients. A first client of the set of clients comprises a first intra-transactional cache. If a copy of a first data entity is in the inter-transactional cache, a version identifier of the original first data entity is read from the repository. If the copy of the first data entity is to be accessed with an exclusive lock, a copy of the copy of the first data entity is added to the first intra-transactional cache. The copy of the copy of the first data entity in the first intra-transactional cache is accessed for further processing of the first data entity by the first client.