Multi-Layer Caching System with Cache Loader Module
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Server systems face slow data access and high response times due to disk-based relational databases, with caching solutions often providing stale data due to inadequate updating processes.
Innovation Solution
An improved caching system with multiple layers, including an in-process cache and a shared cache, where data is progressively checked across layers, and proactive refreshing techniques are employed to maintain data accuracy, using a cache loader module to retrieve and update data from a main data store.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If data is stored in a disk-based relational database, then data can be stored in large capacity, but data retrieval speed is slow and response time increases
Solution Approach 1:
The patent divides the caching system into multiple layers: in-process cache (first layer), shared cache (second layer), and main data store (third layer). Each layer serves different purposes and has different access speeds, allowing the system to balance between storage capacity and retrieval speed by segmenting the data storage hierarchy.
Solution Approach 2:
The patent introduces cache loader modules as intermediaries between the application server and the main data store, and between different cache layers. These intermediaries manage data retrieval, caching, and synchronization, reducing the direct access burden on the main database and improving overall system performance.
2Speed
If a cache system is implemented to improve data access speed, then data retrieval time is reduced, but data may become stale due to inadequate updating processes
Solution Approach 1:
The patent implements feedback mechanisms where the cache loader module continuously monitors and synchronizes cache data with the main data store. When data changes occur in the main store, the system detects these changes and updates the appropriate cache layers, ensuring data consistency while maintaining fast access speeds.
Solution Approach 2:
The system employs periodic refresh operations where cache data is updated at scheduled intervals or triggered by specific events. This periodic synchronization ensures that cached data remains current without requiring constant real-time updates, thus maintaining both speed and reliability.
3Loss of time
If multiple cache layers are implemented to reduce latency, then data retrieval speed is improved, but system complexity increases
Solution Approach 1:
The patent segments the caching system into distinct layers with clearly defined responsibilities: in-process cache for immediate access, shared cache for collaborative access across nodes, and main data store for persistent storage. This segmentation reduces complexity by assigning specific functions to each layer rather than creating a monolithic complex system.
Solution Approach 2:
The cache loader modules serve as intelligent intermediaries that manage the complexity of multi-layer cache coordination. They handle data synchronization, validity checking, and cross-layer communication automatically, shielding the application logic from the underlying caching complexity while achieving low-latency performance.
Data Source
AI summary
Methods and computer-readable medium for improved caching are disclosed. The method includes receiving, at a server node, a first data request including an identifier of a requested data entry; performing a lookup in the in-process cache for data corresponding to the identifier; upon determining that data corresponding to the identifier is missing in the in-process cache, invoking a cache loader module configured to: communicate a second data request for the identifier to a shared cache; receive a response from the shared cache; upon determining that data for the identifier was not returned in the response, communicate a third data request for the identifier to a main data store; receive data for the identifier from the main data store; and add the data for the identifier received from the main data store in the in-process cache; and communicating the data for the identifier of the data entry to a requesting system.


