US 11,995,469 B2
Method and system for preemptive caching across content delivery networks
James Robert King, Norwood, MA (US); and Robert Anthony Lincourt, Jr., Franklin, MA (US)
Assigned to EMC IP HOLDING COMPANY LLC, Hopkinton, MA (US)
Filed by EMC IP Holding Company LLC, Hopkinton, MA (US)
Filed on Dec. 26, 2019, as Appl. No. 16/727,047.
Prior Publication US 2021/0200591 A1, Jul. 1, 2021
Int. Cl. G06F 9/50 (2006.01); G06F 9/30 (2018.01); G06F 21/31 (2013.01); H04L 9/08 (2006.01); H04L 9/32 (2006.01)
CPC G06F 9/5011 (2013.01) [G06F 9/30047 (2013.01); G06F 21/31 (2013.01); H04L 9/0872 (2013.01); H04L 9/3297 (2013.01)] 12 Claims
OG exemplary drawing
 
1. A method for preemptively caching resources in a system that includes an origin node operatively connected to a plurality of edge nodes, wherein the origin node maintains a resource catalog configured to track resources available on the origin node, and an edge catalog containing a plurality of catalog entries pertaining the plurality of edge nodes, comprising:
receiving, by the origin node and from a first edge node of the plurality of edge nodes, a first preemptive caching request comprising a first resource retrieval object, a first resource delivery deadline, and a first resource delivery destination, wherein the first resource delivery deadline and the first resource delivery destination are derived from prospective information for a user obtained from a portable end device, wherein the prospective information comprises at least one of a map route plan, travel itineraries and calendar appointments;
performing a first lookup on the resource catalog using at least a portion of the first resource retrieval object to identify a first resource catalog entry for a first resource, wherein the first resource catalog entry specifies minimum capability requirements needed to cache the first resource;
performing a second lookup on the edge catalog on the origin node using the first resource delivery destination to identify an edge catalog entry for a second edge node;
retrieving, using the edge catalog entry, a cached resource record for the second edge node from the origin node;
making a first determination, using the cached resource record, that the first resource is not cached on the second edge node;
in response to the first determination, obtaining, using the cached resource record, an on-site capability record for the second edge node from the origin node;
making a second determination, based on the on-site capability record, that the second edge node comprises edge resources satisfying the minimum capability requirements for the first resource;
in response to the second determination, generating a resource transfer object, wherein generating the resource transfer object comprises:
obtaining the first resource,
making a third determination to apply additional processing to the first resource to generate a processed first resource, wherein the third determination is made based on an amount of time required to apply the additional processing and the first resource delivery deadline, wherein the additional processing is at least one of compression or deduplication, and
generating the resource transfer object using the processed first resource; and
deploying the resource transfer object, to preemptively cache, the first resource onto the second edge node prior to the first resource delivery deadline, wherein the second edge node is located within a proximity threshold of an expected geo-location during the first resource delivery deadline, wherein the expected geo-location is on the map route plan, wherein the portable end device is not located at the expected geo-location when the origin node receives the first preemptive caching request, and wherein the portable end device follows the map route plan to the expected geo-location,
wherein the first resource retrieval object comprises a service identifier associated with a service providing at least the first resource, and a resource identifier associated with the first resource,
wherein at least the portion of the first resource retrieval object used to identify the first resource comprises the resource identifier,
wherein the user uses the portable end device to access the first resource via the second edge node at the expected geo-location.