Partial Object Caching in Content Delivery Networks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current caching systems are inefficient as they either cache entire objects or none, leading to wasted resources and poor user experience when only partial objects are requested or partially downloaded, especially in content delivery networks where space is limited and user demands vary.
Innovation Solution
Implement partial object caching by determining cached byte ranges, modifying in-flight requests to utilize cached fragments, and dynamically requesting and delivering partial object portions from the origin, allowing for efficient caching and concatenation of partial objects to fulfill requests.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If entire objects are cached or none are cached, then cache management is simple, but cache efficiency and resource utilization deteriorate
Solution Approach 1:
The patent segments objects into byte ranges or fragments, allowing the cache to store and serve only the portions actually requested. The cache manager divides objects into manageable segments and tracks which segments are cached, enabling partial object caching that improves efficiency without overwhelming complexity.
Solution Approach 2:
Instead of requiring complete object downloads for caching, the system implements partial caching where only the necessary byte ranges are retrieved and stored. This partial action approach allows the cache to be filled with useful data without wasting resources on unnecessary portions of objects.
2Productivity
If incomplete objects are cached, then cache utilization improves, but data integrity and reliability deteriorate
Solution Approach 1:
By segmenting objects into discrete byte ranges, the system can cache complete segments while maintaining integrity. Each segment is treated as an independent unit with its own validity tracking, ensuring that only complete and valid segments are served from cache.
Solution Approach 2:
The cache manager maintains feedback mechanisms to track which byte ranges are cached, their validity status, and which requests are in progress. This feedback allows the system to make informed decisions about what to cache and when, ensuring data integrity while maximizing utilization.
3Quantity of substance
If cache fills up, then older objects are purged, but useful partial objects may be lost
Solution Approach 1:
Segmenting objects allows the cache to store multiple partial objects simultaneously, each occupying only the space needed for its actual content. This segmentation enables better space utilization and reduces the likelihood of losing useful data during cache management operations.
Solution Approach 2:
The cache management system dynamically adjusts its behavior based on current conditions, including which objects are cached, which requests are in progress, and available cache space. This dynamic approach allows the system to make optimal decisions about what to retain and what to evict, minimizing data loss.
4Productivity
If in-flight requests are modified to utilize cached fragments, then delivery efficiency improves, but request management complexity increases
Solution Approach 1:
The system merges cached fragments with in-flight requests by modifying request parameters to indicate which byte ranges are already cached. This allows the server to combine cached data with newly downloaded data, improving delivery efficiency while managing complexity through standardized request modification protocols.
Data Source
AI summary
A method of providing media at multiple bit rates using partial object caching may include receiving, from a first user device, a first request for a media object encoded at a first bit rate; providing the first portion of the media object to the first user device; and caching, in a partial object cache, the first portion of the media object. The method may additionally include receiving, from a second user device, a subsequent request for the media object encoded at the first bit rate; providing the first portion of the media object as retrieved from the partial object cache; and receiving a request for the media object encoded at a second bit rate. The method may further include modifying the request for the media object encoded at the second bit rate to instead request a second portion of the media object at the second bit rate.


