Client-Side Caching with Peer Cache Sharing

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedata accessibilityVSAvoidaccess speed
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #26Copying

2Reliability

If data is frequently retrieved from remote server, then data is always up-to-date, but traffic over expensive connection increases

Engineering Contradiction:
Improvedata freshnessVSAvoidconnection cost
Core Design Contradiction:
ReliabilityVSLoss of energy

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #26Copying

3Productivity

If client checks only local cache, then access speed improves, but data availability decreases

Engineering Contradiction:
Improveaccess speedVSAvoiddata availability
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS9286293B2Populating and using caches in client-side caching
Publication Date: 2016.03.15 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9286293B2 patent drawing
  • US9286293B2 patent drawing
  • US9286293B2 patent drawing

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.