IP Library Granted Patent US 9,936,039
Granted Patent B2
US 9,936,039 · App. 14/493,199 · Granted Apr 3, 2018

Choreographed caching

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,936,039
App. No.
14/493,199
Granted
Apr 3, 2018
Kind
B2
Abstract

A routing device capable of performing application layer data caching is described. Application data caching at a routing device can alleviate the bottleneck that an application data host may experience during high demands for application data. Requests for the application data can also be fulfilled faster by eliminating the network delays for communicating with the application data host. The techniques described can also be used to perform analysis of the underlying application data in the network traffic transiting though a routing device.

Claims (50)

1. A computer implemented method comprising:

monitoring, by a computing device, requests received on a plurality of routing devices for application data corresponding to a network resource identifier;

aggregating the requests over a caching time window to derive an aggregated number of requests received on the plurality of routing devices;

determining that the aggregated number of requests received within the caching time window is above a caching threshold;

in response to determining the aggregated number of requests is above the caching threshold, notifying one or more of the plurality of routing devices to cache the application data;

after notifying the one or more of the plurality of routing devices to cache the application data, monitoring subsequent requests received on the plurality of routing devices for the application data;

aggregating the subsequent requests over a de-caching time window to derive an aggregated number of subsequent requests received on the plurality of routing devices;

determining that the aggregated number of subsequent requests received within the de-caching time window is below a de-caching threshold; and

in response to determining the aggregated number of subsequent requests is below the de-caching threshold, notifying the one or more of the plurality of routing devices to de-cache the application data.

2. The method of claim 1 , wherein a duration of the caching time window is different than a duration of the de-caching time window.

3. The method of claim 1 , wherein the caching threshold is different than the de-caching threshold.

4. The method of claim 1 , further comprising:

notifying one or more additional routing devices that have not received a request for the application data to cache the application data.

5. The method of claim 4 , further comprising:

instructing one or more of the plurality of routing devices to push the application data to the one or more additional routing devices.

6. The method of claim 1 , wherein notifying the one or more of the plurality of routing devices to cache the application data includes notifying each of the one or more of the plurality of routing devices to cache a different portion of the application data.

7. A system, comprising:

one or more data processors; and

a non-transitory computer readable storage medium containing instructions which when executed on the one or more data processors, cause the one or more processors to perform operations including:

monitoring requests received on a plurality of routing devices for application data corresponding to a network resource identifier;

aggregating the requests over a caching time window to derive an aggregated number of requests received on the plurality of routing devices;

determining that the aggregated number of requests received within the caching time window is above a caching threshold;

in response to determining the aggregated number of requests is above the caching threshold, notifying one or more of the plurality of routing devices to cache the application data;

after notifying the one or more of the plurality of routing devices to cache the application data, monitoring subsequent requests received on the plurality of routing devices for the application data;

aggregating the subsequent requests over a de-caching time window to derive an aggregated number of subsequent requests received on the plurality of routing devices;

determining that the aggregated number of subsequent requests received within the de-caching time window is below a de-caching threshold; and

in response to determining the aggregated number of subsequent requests is below the de-caching threshold, notifying the one or more of the plurality of routing devices to de-cache the application data.

8. The system of claim 7 , wherein a duration of the caching time window is different than a duration of the de-caching time window.

9. The system of claim 7 , wherein the caching threshold is different than the de-caching threshold.

10. The system of claim 7 , wherein the operations further include:

notifying one or more additional routing devices that have not received a request for the application data to cache the application data.

11. The system of claim 10 , wherein the operations further include:

instructing one or more of the plurality of routing devices to push the application data to the additional routing devices.

12. The system of claim 7 , wherein notifying the one or more of the plurality of routing devices to cache the application data includes notifying each of the one or more of the plurality of routing devices to cache a different portion of the application data.

13. A computer-program product tangibly embodied in a non-transitory machine-readable storage medium, including instructions configured to cause a data processing apparatus to perform operations comprising:

monitoring requests received on a plurality of routing devices for application data corresponding to a network resource identifier;

aggregating the requests over a caching time window to derive an aggregated number of requests received on the plurality of routing devices;

determining that the aggregated number of requests received within the caching time window is above a caching threshold;

in response to determining the aggregated number of requests is above the caching threshold, notifying one or more of the plurality of routing devices to cache the application data;

after notifying the one or more of the plurality of routing devices to cache the application data, monitoring subsequent requests received on the plurality of routing devices for the application data;

aggregating the subsequent requests over a de-caching time window to derive an aggregated number of subsequent requests received on the plurality of routing devices;

determining that the aggregated number of subsequent requests received within the de-caching time window is below a de-caching threshold; and

in response to determining the aggregated number of subsequent requests is below the de-caching threshold, notifying the one or more of the plurality of routing devices to de-cache the application data.

14. The computer-program product of claim 13 , wherein a duration of the caching time window is different than a duration of the de-caching time window.

15. The computer-program product of claim 13 , wherein the caching threshold is different than the de-caching threshold.

16. The computer-program product of claim 13 , wherein the operations further include:

notifying one or more addition al routing devices that have not received a request for the application data to cache the application data.

17. The computer-program product of claim 16 , wherein the operations further include:

instructing one or more of the plurality of routing devices to push the application data to the additional routing devices.

18. The computer-program product of claim 13 , wherein notifying the one or more of the plurality of routing devices to cache the application data includes notifying each of the one or more of the plurality of routing devices to cache a different portion of the application data.

Assignments (2)
SUPPLEMENT NO. 12 TO PATENT SECURITY AGREEMENT Recorded Feb 19, 2015
From: BELKIN INTERNATIONAL, INC.,
To: WELLS FARGO BANK, NATIONAL ASSOCIATION (AS AGENT)
Reel/Frame 035049/0480 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2014
From: KIM, RYAN YONG
To: BELKIN INTERNATIONAL INC.
Reel/Frame 034580/0525 →