Internet Cache Object Hints for Peer Query Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Internet caching systems face inefficiencies due to the wasteful process of querying peer servers for object freshness, which can result in 'false hits' and delays, as they typically check object headers on disk, leading to performance and resource usage issues.
Innovation Solution
Peer servers capture and store object information, such as TTL, in RAM using flags, allowing them to quickly respond with 'fresh' or 'stale' status without accessing disk, enabling more informed decision-making by proxy servers on cache hierarchy usage and reducing unnecessary revalidation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If peer servers check object headers on disk to respond to ICP queries, then they can verify object freshness, but this causes performance delays and increases disk wear
Solution Approach 1:
The patent applies preliminary action by pre-computing and storing object metadata (including freshness indicators) in memory before ICP queries arrive. When an object is cached, the server immediately calculates and stores metadata such as expiration timestamps and freshness flags, so that subsequent ICP queries can be answered by simply reading this pre-prepared metadata from memory rather than checking the actual object on disk.
Solution Approach 2:
The patent segments the object data into two parts: the actual cached object content (stored on disk) and the object metadata (stored in memory). This segmentation allows the system to keep only the essential freshness verification information in fast memory, separating the heavy object data from the lightweight metadata needed for quick ICP query responses.
2Speed
If peer servers store complete object data in memory for fast ICP query responses, then query speed improves, but memory usage increases significantly
Solution Approach 1:
The patent extracts only the essential metadata components needed for ICP query responses from the complete object data. Instead of storing entire objects in memory, it extracts and stores only critical fields such as expiration timestamps, freshness flags, and minimal identification information, discarding the rest of the object content which remains on disk.
Solution Approach 2:
The system performs preliminary action by pre-calculating and storing only the necessary metadata fields in memory when objects are cached, rather than loading complete objects. This preliminary preparation of minimal metadata enables fast query responses while maintaining efficient memory utilization.
3Reliability
If caches frequently revalidate objects with origin servers, then object freshness is ensured, but system performance and origin server load increase
Solution Approach 1:
The patent implements self-service by enabling peer caches to autonomously determine object freshness using metadata stored in their own memory, without needing to contact origin servers for every ICP query. The metadata contains sufficient information (expiration timestamps, freshness flags) for caches to self-verify object status, eliminating unnecessary revalidation traffic.
Solution Approach 2:
The system performs preliminary action by pre-storing freshness verification metadata in cache memory, allowing caches to proactively determine object validity without real-time origin server communication. This preliminary metadata preparation enables caches to serve stale objects or make informed decisions without burdening origin servers.
Data Source
AI summary
Improvements to internet cache protocols are disclosed. In certain embodiments, a client-facing proxy server can query peer servers to determine whether they have a copy of an object that the proxy server needs. The peer servers can respond based on object information that the peer servers stored about objects they have in cache, where the peers recorded such object information previously when ingesting the objects into their cache and stored it separately from the objects for fast access (e.g. in RAM vs. on disk). This information can be expressed in a compact way using just a few object flags, and enables the peer server to quickly respond and with detail about the status of objects they hold. The proxy server can make an intelligent decision about which peer to use, and indeed whether to use a peer at all.


