Method and apparatus for reducing network resource transmission size using delta compression
First Claim
1. A method in a near end point of presence (PoP) of a cloud proxy service, of reducing network resource transmission size, the method comprising:
- receiving at a near end PoP of a cloud proxy service, a first request for a network resource from a first one of a plurality of client devices, wherein the first client device is physically separate from the near end PoP;
selecting a far end PoP from a plurality of PoPs of the cloud proxy service, wherein the far end PoP is closer to an origin server hosting the requested network resource than the near end PoP is relative to the origin server;
determining whether to perform a delta compression technique for reducing network resource transmission size for the first request, wherein determining whether to perform a delta compression technique includes;
tracking performance measures for network resources and the plurality of PoPs of the cloud proxy service, wherein tracking performance measures includes tracking for each network resource a measure of an average delta compression achieved for a determined geographical area, andwherein determining whether to perform a delta compression technique for reducing network resource transmission size for the first request is based upon the performance measures; and
responsive to determining that the delta compression technique is to be performed, performing;
responsive to determining that a version of the network resource is not stored in the near end PoP, transmitting a second request for the network resource to the far end PoP,receiving, from the far end PoP, a first response that includes the requested network resource,transmitting, to the first client device, a second response that includes the requested network resource,storing, in the near end PoP, the requested network resource as a first version of the network resource,receiving, from a second one of the plurality of client devices, a third request for the network resource, wherein the second client device is physically separate from the near end PoP,responsive to determining that the first version of the network resource is stored in the near end PoP, transmitting a fourth request for the network resource to the far end PoP, the fourth request including a first version identifier that identifies the first version of the network resource stored in the near end PoP,receiving, from the far end PoP, a third response that includes a differences file that specifies a set of one or more differences between the first version of the network resource stored in the near end PoP with a most current version of the network resource, wherein the third response does not include the entire network resource,applying the set of differences specified in the differences file to the first version of the network resource stored in the near end PoP to generate an updated version of the network resource, andtransmitting, to the second client device, a fourth response that includes the updated version of the network resource.
1 Assignment
0 Petitions
Accused Products
Abstract
A near end point of presence (PoP) of a cloud proxy service receives, from a client device, a request for a network resource. A far end PoP from a plurality of PoPs of the cloud proxy service is identified. Responsive to determining that a version of the network resource is stored in the near end PoP, a request for the network resource is transmitted to the far end PoP with a version identifier that identifies that version. The far end PoP receives, from the near end PoP, a response that includes difference(s) between the version of the network resource stored in the near end PoP with a most current version of the network resource. The response does not include the entire network resource. The near end PoP applies the specified difference(s) to the version that it has stored to generate an updated version of the network resource, and transmits it to the client device.
23 Citations
22 Claims
-
1. A method in a near end point of presence (PoP) of a cloud proxy service, of reducing network resource transmission size, the method comprising:
-
receiving at a near end PoP of a cloud proxy service, a first request for a network resource from a first one of a plurality of client devices, wherein the first client device is physically separate from the near end PoP; selecting a far end PoP from a plurality of PoPs of the cloud proxy service, wherein the far end PoP is closer to an origin server hosting the requested network resource than the near end PoP is relative to the origin server; determining whether to perform a delta compression technique for reducing network resource transmission size for the first request, wherein determining whether to perform a delta compression technique includes; tracking performance measures for network resources and the plurality of PoPs of the cloud proxy service, wherein tracking performance measures includes tracking for each network resource a measure of an average delta compression achieved for a determined geographical area, and wherein determining whether to perform a delta compression technique for reducing network resource transmission size for the first request is based upon the performance measures; and responsive to determining that the delta compression technique is to be performed, performing; responsive to determining that a version of the network resource is not stored in the near end PoP, transmitting a second request for the network resource to the far end PoP, receiving, from the far end PoP, a first response that includes the requested network resource, transmitting, to the first client device, a second response that includes the requested network resource, storing, in the near end PoP, the requested network resource as a first version of the network resource, receiving, from a second one of the plurality of client devices, a third request for the network resource, wherein the second client device is physically separate from the near end PoP, responsive to determining that the first version of the network resource is stored in the near end PoP, transmitting a fourth request for the network resource to the far end PoP, the fourth request including a first version identifier that identifies the first version of the network resource stored in the near end PoP, receiving, from the far end PoP, a third response that includes a differences file that specifies a set of one or more differences between the first version of the network resource stored in the near end PoP with a most current version of the network resource, wherein the third response does not include the entire network resource, applying the set of differences specified in the differences file to the first version of the network resource stored in the near end PoP to generate an updated version of the network resource, and transmitting, to the second client device, a fourth response that includes the updated version of the network resource. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A non-transitory machine-readable storage medium that provides instructions that, when executed by a processor of a near end point of presence (PoP) of a cloud proxy service, cause said processor to perform operations comprising:
-
receiving at a near end PoP of a cloud proxy service, a first request for a network resource from a first one of a plurality of client devices, wherein the first client device is physically separate from the near end PoP; selecting a far end PoP from a plurality of PoPs of the cloud proxy service, wherein the far end PoP is closer to an origin server hosting the requested network resource than the near end PoP is relative to the origin server; determining whether to perform a delta compression technique for reducing network resource transmission size for the first request, wherein determining whether to perform a delta compression technique includes; tracking performance measures for network resources and the plurality of PoPs of the cloud proxy service, wherein tracking performance measures includes tracking for each network resource a measure of an average delta compression achieved for a determined geographical area, and wherein determining whether to perform a delta compression technique for reducing network resource transmission size for the first request is based upon the performance measures; and responsive to determining that the delta compression technique is to be performed, performing; responsive to determining that a version of the network resource is not stored in the near end PoP, transmitting a second request for the network resource to the far end PoP, receiving, from the far end PoP, a first response that includes the requested network resource, transmitting, to the first client device, a second response that includes the requested network resource, storing, in the near end PoP, the requested network resource as a first version of the network resource, receiving, from a second one of the plurality of client devices, a third request for the network resource, wherein the second client device is physically separate from the near end PoP, responsive to determining that the first version of the network resource is stored in the near end PoP, transmitting a fourth request for the network resource to the far end PoP, the fourth request including a first version identifier that identifies the first version of the network resource stored in the near end PoP, receiving, from the far end PoP, a third response that includes a differences file that specifies a set of one or more differences between the first version of the network resource stored in the near end PoP with a most current version of the network resource, wherein the third response does not include the entire network resource, applying the set of differences specified in the differences file to the first version of the network resource stored in the near end PoP to generate an updated version of the network resource, and transmitting, to the second client device, a fourth response that includes the updated version of the network resource. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
Specification