Inter-transactional Cache for Client-Server Data Consistency
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If version identifier checking is implemented to ensure data consistency, then data reliability is improved, but processing overhead increases
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.
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.
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
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.
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.
Data Source
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.


