Delta-Coded Content Delivery With Fingerprint-Based Missing Block Transfer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional approaches to prepositioning data streams and delta coding in communications systems involve high network overhead due to maintaining synchronization and error correction, especially when data is distributed opportunistically, and require maintaining master copies on intermediate servers.
Innovation Solution
A stateless intermediate server uses delta coding techniques to determine which content blocks are already stored on user systems by generating fingerprints of content chunks and comparing them with locally stored blocks, allowing only missing blocks to be sent, thereby reducing redundant data transfers and network overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional delta coding is used to track locally stored content blocks, then content delivery efficiency can be improved, but network overhead increases due to maintaining coder synchronization
Solution Approach 1:
The patent extracts the synchronization maintenance function from the intermediate server by using client-generated fingerprints. Instead of the server tracking and synchronizing delta coders with clients, the clients independently generate fingerprints of their locally stored blocks and include them in response packages, eliminating the need for server-side coder synchronization and reducing network overhead.
Solution Approach 2:
Clients perform self-service by autonomously generating fingerprints of their locally stored content blocks and providing this information to the server without requiring server-side tracking or synchronization mechanisms. This self-service approach eliminates the overhead of maintaining delta coder synchronization while enabling efficient content delivery.
2Reliability
If master copies are maintained on intermediate servers for error correction, then data reliability is improved, but device complexity and storage burden on servers increase
Solution Approach 1:
The patent extracts the error correction function from the intermediate server by distributing content blocks to multiple clients and using their locally stored blocks as implicit error correction resources. The server no longer needs to maintain master copies or implement complex error correction algorithms, reducing server complexity while maintaining data reliability through redundant client storage.
Solution Approach 2:
Clients serve multiple functions: they are both content consumers and distributed storage nodes that provide error correction capabilities. By storing content blocks locally, clients inadvertently provide redundancy that can be used for error correction without requiring the server to maintain separate master copies or error correction infrastructure.
3Loss of energy
If opportunistic multicast is used to distribute content, then bandwidth efficiency is improved, but network overhead increases due to forwarding error correction traffic
Solution Approach 1:
Clients independently determine which content blocks they already have by generating fingerprints of their locally stored blocks and including these fingerprints in response packages. This self-service approach eliminates the need for the server to send error correction traffic to verify client storage status, reducing network overhead while maintaining opportunistic multicast bandwidth efficiency.
Data Source
AI summary
Systems and methods are described for avoiding redundant data transfers using delta coding techniques when reliably and opportunistically communicating data to multiple user systems. According to embodiments, user systems track received block sequences for locally stored content blocks. An intermediate server intercepts content requests between user systems and target hosts, and deterministically chucks and fingerprints content data received in response to those requests. A fingerprint of a received content block is communicated to the requesting user system, and the user system determines based on the fingerprint whether the corresponding content block matches a content block that is already locally stored. If so, the user system returns a set of fingerprints representing a sequence of next content blocks that were previously stored after the matching content block. The intermediate server can then send only those content data blocks that are not already locally stored at the user system according to the returned set of fingerprints.


