Client-Side Caching with Peer Cache Sharing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In environments where client machines access data over slow or expensive connections, existing technologies do not effectively reduce traffic over the connection, leading to degraded performance and increased expenses.
Innovation Solution
Implementing a client-side caching system that first checks a local cache, then a peer cache, and if necessary, retrieves data from a remote server while caching and publishing it to peer caches, thereby reducing the need for frequent data retrieval over the connection.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If client machines access data over WAN or slow connection, then data can be retrieved from remote server, but performance is degraded and expenses increase
Solution Approach 1:
The system performs preliminary actions by caching data locally and in peer caches before it is needed. When data is first requested, it is retrieved from the remote server and stored in the local cache and peer cache, so that subsequent requests can be satisfied from the cache without accessing the slow WAN connection again.
Solution Approach 2:
The system creates copies of data by storing it in multiple locations: the local cache on the client machine and peer caches on other client machines. This copying allows multiple clients to access the same data without each one needing to retrieve it from the remote server, thereby improving access speed while maintaining reliability.
2Reliability
If data is frequently retrieved from remote server, then data is always up-to-date, but traffic over expensive connection increases
Solution Approach 1:
The system performs preliminary caching of data when it is first retrieved from the remote server. By storing the data in the local cache and peer cache at this preliminary stage, the system avoids the need for frequent subsequent retrieval operations that would incur connection costs, while still maintaining data freshness through periodic updates.
Solution Approach 2:
The system creates multiple copies of data in different cache locations, allowing multiple clients to access the same data without each one triggering a separate retrieval from the remote server. This copying strategy significantly reduces the total traffic over the expensive connection while ensuring each client receives fresh data when needed.
3Productivity
If client checks only local cache, then access speed improves, but data availability decreases
Solution Approach 1:
The system segments the caching architecture into multiple levels: a local cache on each client machine and a distributed peer cache system across other client machines. This segmentation allows the system to first check the local cache for fast access, and if not found, query peer caches or retrieve from the remote server, thereby maintaining both speed and availability.
Solution Approach 2:
The system adds another dimension to data storage by introducing peer caches on other client machines in addition to the local cache. This dimensional expansion creates a multi-tier caching hierarchy where data can be retrieved from the local cache (fastest), then peer caches (intermediate), and finally the remote server (slowest), balancing access speed with data availability.
Data Source
AI summary
Aspects of the subject matter described herein relate to client-side caching. In aspects, when a client receives a request for data that is located on a remote server, the client first checks a local cache to see if the data is stored in the local cache. If the data is not stored in the local cache, the client may check a peer cache to see if the data is stored in the peer cache. If the data is not stored in the peer cache, the client obtains the data from the remote server, caches it locally, and publishes to the peer cache that the client has a copy of the data.


