US 11,677,793 B2
Stream-based data deduplication with cache synchronization
Charles E. Gero, Quincy, MA (US); Andrew F. Champagne, Ware, MA (US); and F. Thomson Leighton, Newtonville, MA (US)
Assigned to Akamai Technologies, Inc., Cambridge, MA (US)
Filed by Akamai Technologies, Inc., Cambridge, MA (US)
Filed on Jul. 6, 2021, as Appl. No. 17/368,641.
Application 17/368,641 is a continuation of application No. 16/276,287, filed on Feb. 14, 2019, abandoned.
Application 16/276,287 is a continuation of application No. 15/268,660, filed on Sep. 19, 2016, granted, now 10,212,203, issued on Feb. 19, 2019.
Application 15/268,660 is a continuation of application No. 14/140,102, filed on Dec. 24, 2013, granted, now 9,451,000, issued on Sep. 20, 2016.
Claims priority of provisional application 61/746,297, filed on Dec. 27, 2012.
Prior Publication US 2021/0337003 A1, Oct. 28, 2021
This patent is subject to a terminal disclaimer.
Int. Cl. H04L 65/60 (2022.01); H04L 67/2876 (2022.01); H04L 67/06 (2022.01); H04L 67/5651 (2022.01); H04L 67/5681 (2022.01)
CPC H04L 65/60 (2013.01) [H04L 67/06 (2013.01); H04L 67/2876 (2013.01); H04L 67/5651 (2022.05); H04L 67/5681 (2022.05)] 10 Claims
OG exemplary drawing
 
1. A system, comprising:
a parent data processing node;
a child data processing node;
computer program code configured to execute on the parent and child data processing nodes, the computer program code configured to:
as a stream traverses the parent data processing node, break the stream into chunks;
for a particular chunk of the stream, determine, at the parent data processing node and using a directed cyclic graph (DCG) associated with the parent data processing node, whether the child data processing node already has the particular chunk;
based on the determination, send, from the parent data processing node to the child processing node, one of: the chunk, a reference to the chunk, and a compact data structure representing a sequence of chunks as identified in the directed cyclic graph associated with the parent data processing node;
as the stream begins to be decoded at the child data processing node, and for at least one reference or compact data structure in the stream, determine whether the reference or the compact data structure, as the case may be, is associated with a chunk stored in the child data processing system using a directed cyclic graph (DCG) associated with the child data processing node;
when the reference or compact data structure is associated with a chunk stored, incorporate data associated with the chunk back into the stream; and
when the reference or compact data structure is associated with a chunk that is missing, perform an on-demand request to the parent data processing node to obtain data corresponding to the chunk or the compact data structure.