IP Library Granted Patent US 9,009,253
Granted Patent B2
US 9,009,253 · App. 13/028,888 · Granted Apr 14, 2015

Optimizing server resources using multiple retry for high traffic websites

Inventors: Jayadev Chandrasekhar (Sunnyvale, CA); David Su (Sunnyvale, CA); Prasanna Padmanabhan (Sunnyvale, CA); Nicholas Zakas (Mountain View, CA); Okan Alper (Redwood City, CA)
Assignee: Yahoo! Inc.
G06F17/30902H04L29/06H04L29/08072H04L12/66
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,009,253
App. No.
13/028,888
Granted
Apr 14, 2015
Kind
B2
Abstract

A method for optimizing resources on a web server is provided. A web page may include areas for displaying content that is time consuming to retrieve. The content may be geographically far away or the content server itself may be slow. A caching proxy between the web server and the content server responds to requests for data immediately, with or without the data requested from the cache. On a cache miss, the caching proxy asynchronously retrieves data so that the next time the same content is requested, the data should be available in the cache. Asynchronous retrieval means that no valuable resources are tied up on the web server while waiting for the content to be provided from the content server. The initial web page sent from the web server to the web browser includes retry logic. The data may be retrieved from the cache during one of the retries.

Claims (56)

1. A computer-implemented method comprising:

in response to a request for a web page, a web server generating and providing the web page to a web browser executing on a client device, wherein the web server generating the web page includes the web server including in the web page a plurality of executable statements that includes:

a first set of one or more executable statements which, when executed by the web browser, causes the web browser to perform generating a first data request to return data to be displayed within the web page;

a second set of one or more executable statements which, when executed by the web browser, causes the web browser to perform sending the first data request to the web server;

a third set of one or more executable statements which, when executed by the web browser, causes the web browser to perform determining whether the requested data to be displayed within the web page was returned to the web browser; and

a fourth set of one or more executable statements which, when executed by the web browser, causes the web browser to perform in response to determining that the requested data to be displayed within the web page was not returned to the web browser,

generating a second data request to return the data to be displayed within the web page; and

sending the second data request to return the data to be displayed within the web page to the web server.

2. The method of claim 1 , wherein the plurality of executable statements is executed in response to a user requesting data to be returned and displayed by selecting an area on the web page.

3. The method of claim 1 , wherein the plurality of executable statements is executed automatically by the web browser without waiting for a user select a region displayed on the web page.

4. The method of claim 1 , wherein the plurality of executable statements, which when executed by the web browser, cause the web browser to wait a specified time between determining that the requested data to be displayed within the web page was not returned to the web browser and when the second data request to return the data to be displayed within the web page is sent to the web server; and

wherein the plurality of executable statements, which, when executed by the web browser, cause data requests to continue to be sent to the web server for a specified number of retries.

5. The method of claim 4 , wherein the specified time is based on a location of the computer running the service that returns the requested data to be displayed within the web page.

6. The method of claim 4 , wherein the specified time is based on an amount of time to retrieve data from the service over recent history.

7. The method of claim 1 , wherein the plurality of executable statements further includes executable statements, which when executed by the web browser cause the web browser to perform:

in response to determining that the requested data to be displayed within the web page was not returned to the web browser in response to the second data request to return the data to be displayed within the web page, generating a third data request to return the data to be displayed within the web page;

sending the third data request to return the data to be displayed within the web page to the web server;

wherein a time interval between the first data request to return data to be displayed within the web page and the second data request to return the data to be displayed within the web page is different than the time interval between the second data request to return the data to be displayed within the web page and the third data request to return the data to be displayed within the web page.

8. The method of claim 1 , further comprising:

the web server receiving the first data request to return data to be displayed within the web page from the web browser, wherein the first data request to return data to be displayed within the web browser identifies a user and a service from which to request the data;

forwarding the first data request to return data to be displayed within the web page to the service through a web caching proxy;

returning an indication that the requested data is not stored in a cache;

forwarding the first data request to return data to be displayed within the web page to the service;

receiving the requested data from the service;

storing the requested data in the cache;

receiving the second data request to return the data to be displayed within the web page from the web browser;

retrieving the requested data from the cache; and

forwarding the requested data to the web browser.

9. One or more non-transitory computer-readable storage media storing instructions which, when processed by one or more processors, causes:

in response to a request for a web page, a web server generating and providing the web page to a web browser executing on a client device, wherein the web server generating the web page includes the web server including in the web page:

a first set of one or more executable statements which, when executed by the web browser, causes the web browser to perform generating a first data request to return data to be displayed within the web page;

a second set of one or more executable statements which, when executed by the web browser, causes the web browser to perform sending the first data request to the web server;

a third set of one or more executable statements which, when executed by the web browser, causes the web browser to perform determining whether the requested data to be displayed within the web page was returned to the web browser; and

a fourth set of one or more executable statements which, when executed by the web browser, causes the web browser to perform in response to determining that the requested data to be displayed within the web page was not returned to the web browser,

generating a second data request to return the data to be displayed within the web page; and

sending the second data request to return the data to be displayed within the web page to the web server.

10. The one or more non-transitory computer-readable storage media of claim 9 , wherein the plurality of executable statements is executed in response to a user requesting data to be returned and displayed by selecting an area on the web page.

11. The one or more non-transitory computer-readable storage media of claim 9 , wherein the plurality of executable statements is executed automatically by the web browser without waiting for a user select a region displayed on the web page.

12. The one or more non-transitory computer-readable storage media of claim 9 , wherein the plurality of executable statements, which when executed by the web browser, cause the web browser to wait a specified time between determining that the requested data to be displayed within the web page was not returned to the web browser and when the second data request to return the data to be displayed within the web page is sent to the web server; and

wherein the plurality of executable statements, which, when executed by the web browser, cause data requests to continue to be sent to the web server for a specified number of retries.

13. The one or more non-transitory computer-readable storage media of claim 12 , wherein the specified time is based on a location of the computer running the service that returns the requested data to be displayed within the web page.

14. The one or more non-transitory computer-readable storage media of claim 12 , wherein the specified time is based on an amount of time to retrieve data from the service over recent history.

15. The one or more non-transitory computer-readable storage media of claim 9 , wherein the plurality of executable statements further includes executable statements, which when executed by the web browser cause the web browser to perform:

in response to determining that the requested data to be displayed within the web page was not returned to the web browser in response to the second data request to return the data to be displayed within the web page, generating a third data request to return the data to be displayed within the web page;

sending the third data request to return the data to be displayed within the web page to the web server;

wherein a time interval between the first data request to return data to be displayed within the web page and the second data request to return the data to be displayed within the web page is different than the time interval between the second data request to return the data to be displayed within the web page and the third data request to return the data to be displayed within the web page.

16. The one or more non-transitory computer-readable storage media of claim 9 , further comprising additional instructions which, when processed by the one or more processors cause:

the web server receiving the first data request to return data to be displayed within the web page from the web browser, wherein the first data request to return data to be displayed within the web browser identifies a user and a service from which to request the data;

forwarding the first data request to return data to be displayed within the web page to the service through a web caching proxy;

returning an indication that the requested data is not stored in a cache;

forwarding the first data request to return data to be displayed within the web page to the service;

receiving the requested data from the service;

storing the requested data in the cache;

receiving the second data request to return the data to be displayed within the web page from the web browser;

retrieving the requested data from the cache; and

forwarding the requested data to the web browser.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNOR NAME PREVIOUSLY RECORDED AT REEL: 052853 FRAME: 0153. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 29, 2021
From: R2 SOLUTIONS LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 056832/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 053654 FRAME 0254. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST GRANTED PURSUANT TO THE PATENT SECURITY AGREEMENT PREVIOUSLY RECORDED. Recorded Dec 30, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: R2 SOLUTIONS LLC
Reel/Frame 054981/0377 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jul 8, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
Reel/Frame 053654/0254 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2020
From: EXCALIBUR IP, LLC
To: R2 SOLUTIONS LLC
Reel/Frame 053459/0059 →
PATENT SECURITY AGREEMENT Recorded Jun 5, 2020
From: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MERTON ACQUISITION HOLDCO LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 052853/0153 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038950/0592 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2016
From: EXCALIBUR IP, LLC
To: YAHOO! INC.
Reel/Frame 038951/0295 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038383/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2011
From: CHANDRASEKHAR, JAYADEV; SU, DAVID; PADMANABHAN, PRASANNA; ZAKAS, NICHOLAS; ALPER, OKAN
To: YAHOO! INC.
Reel/Frame 026093/0111 →
Continuity (1)
Related Publication 20120209945A1 · Aug 16, 2012