IP Library Granted Patent US 11,657,111
Granted Patent B2
US 11,657,111 · App. 16/299,484 · Granted May 23, 2023

Optimistic data fetching and rendering

Inventors: Jing Chen (Mountain View, CA); Yuzhi Zheng (Milpitas, CA); Laney Elizabeth Kuenzel (Palo Alto, CA); Timothy Robert Yung (Sunnyvale, CA); Lewis Marshall Roch (Redwood City, CA)
Assignee: Meta Platforms, Inc.
G06F16/9574G06F16/176G06F16/2471G06F16/9536G06F16/9538H04L1/08H04L1/16
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 11,657,111
App. No.
16/299,484
Granted
May 23, 2023
Kind
B2
Abstract

A data-fetching and data-rendering system may, in response to receiving a page display request, construct a static, possibly nested query for retrieving all the data to be rendered for the page and store the query result in a data store. For a future page display request, the system may similarly construct a query and determine whether the query can be resolved from the data store. If not, the system may construct a “diff query” to fetch only the missing data. In some embodiments, in response to a subsequent page update request, the system may retrieve from the server all the data likely to be viewed or updated and render the data changes corresponding to the requested update. The system may then submit the data changes to the server and undo the rendering of the data changes when the server fails to process the data changes.

Claims (110)

1. A method of managing data for graphical rendering, comprising:

receiving, by a client system having a local database, a request from a user to view a graphical user interface comprising at least one of:

a first graphical representation of a first content item of a first type; and

a second graphical representation of a second content item of a second type;

retrieving, by the client system in response to the request, at least:

a first file comprising first instructions for accessing or rendering data representing content items of the first type; and

a second file comprising second instructions for accessing or rendering data representing content items of the second type;

generating, at the client system, a grouped database query for all data stored in a remote master database of a server system that are necessary for rendering the first graphical representation and the second graphical representation by:

generating, based on the first instructions from the first file, a first database query for accessing first data representing the first content item; and

generating, based on the second instructions from the second file, a second database query for accessing second data representing the second content item, the grouped database query comprising the first database query and the second database query;

submitting, from the client system, the grouped database query to the server system to reduce network requests to the server system;

receiving, at the client system, a query result corresponding to the grouped database query from the server system;

saving, at the client system, the query result in the local database; and

rendering, at the client system, the graphical user interface based on data stored in the local database.

2. The method of claim 1 , further comprising trimming, at the client system before submitting the grouped database query to the server system, a portion of the grouped database query when an additional query result corresponding to the portion is available in the local database.

3. The method of claim 1 , wherein the content items of the first type comprise one of:

newsfeeds provided by a social networking system;

user profiles provided by the social networking system; or

user-generated content provided by the social networking system.

4. The method of claim 1 , wherein:

the first instructions comprise the instructions for rendering content items of the first type; and

the second instructions comprise the instructions for rendering content items of the second type.

5. The method of claim 1 , wherein:

the first file and the second file are retrieved from a remote file store; and

the method further comprises storing the first file and the second file in a local file cache.

6. A system for managing data for graphical rendering, comprising:

a local database; and

a processor and memory cooperating to function as:

a first receiving unit configured to receive a request from a user to view a graphical user interface comprising at least one of:

a first graphical representation of a first content item of a first type; and

a second graphical representation of a second content item of a second type;

a retrieving unit configured to retrieve at least:

a first file comprising first instructions for accessing or rendering data representing content items of the first type; and

a second file comprising second instructions for accessing or rendering data representing content items of the second type;

an identifying unit configured to generate a grouped database query for all data stored in a remote master database of a server system that are necessary for rendering the first graphical representation and the second graphical representation by:

generating, based on the first instructions from the first file, a first database query for accessing first data representing the first content item; and

generating, based on the second instructions from the second file, a second database query for accessing second data representing the second content item, the grouped database query comprising the first database query and the second database query;

a submitting unit configured to submit the grouped database query to the server system to reduce network requests to the server system;

a second receiving unit configured to receive a query result corresponding to the grouped database query from the server system;

a saving unit configured to save the query result in the local database; and

a rendering unit configured to render the graphical user interface based on data stored in the local database.

7. The system of claim 6 , the processor and the memory further cooperating to function as a trimming unit configured to trim a portion of the grouped database query when an additional query result corresponding to the portion is available in the local database.

8. The system of claim 6 , wherein the content items of the first type comprise one of:

newsfeeds provided by a social networking system;

user profiles provided by the social networking system; or

user-generated content provided by the social networking system.

9. The system of claim 6 , wherein:

the first instructions comprise the instructions for rendering content items of the first type; and

the second instructions comprise the instructions for rendering content items of the second type.

10. A non-transitory computer-readable storage medium storing computer-executable instructions that, when executed, cause a computer to perform a method of managing data for graphical rendering, the computer-executable instructions comprising:

instructions for receiving a request to view a graphical user interface comprising at least one of:

a first graphical representation of a first content item of a first type; and

a second graphical representation of a second content item of a second type;

instructions for retrieving at least:

a first file comprising first instructions for accessing or rendering data representing content items of the first type; and

a second file comprising second instructions for accessing or rendering data representing content items of the second type;

instructions for generating a grouped database query for all data stored in a remote master database of a server system that are necessary for rendering the first graphical representation and the second graphical representation by:

generating, based on the first instructions from the first file, a first database query for accessing first data representing the first content item; and

generating, based on the second instructions from the second file, a second database query for accessing second data representing the second content item, the grouped database query comprising the first database query and the second database query;

instructions for submitting the grouped database query to the server system to reduce network requests to the server system;

instructions for receiving a query result corresponding to the grouped database query from the server system;

instructions for saving the query result in a local database; and

instructions for rendering the graphical user interface based on data stored in the local database.

11. The method of claim 1 , wherein:

the first file further comprises an indication of a relationship wherein an update to the first content item of the first type causes an update to the second content item of the second type; and

the method further comprises:

receiving, by the client system, an additional request from the user to update the first content item via the graphical user interface;

generating, at the client system, an additional grouped database query for all data stored in the remote master database that are likely to be updated due to the additional request by:

generating, based on the first instructions from the first file, a first additional database query for accessing first updated data representing the updated first content item; and

generating, based on the second instructions from the second file, a second additional database query for accessing second updated data representing the updated second content item, the additional grouped database query comprising the first additional database query and the second additional database query;

submitting, from the client system, the additional grouped database query to the server system to reduce the network requests to the server system;

receiving, at the client system, an additional query result corresponding to the additional grouped database query from the server system; and

saving, at the client system, the additional query result in the local database.

12. The method of claim 11 , further comprising presenting, to the user before submitting the additional grouped database query to the server system, an updated graphical representation of the updated first content item.

13. The method of claim 12 , further comprising:

after the presenting, receiving a third request for viewing an updated graphical representation of the updated second content item;

retrieving the second updated data representing the updated second content item from the local database; and

presenting the updated graphical representation of the updated first content item based on the second updated data.

14. The method of claim 11 , further comprising presenting, to the user before submitting the additional grouped database query to the server system, an updated graphical representation of the updated second content item.

15. The method of claim 1 , wherein:

the first file further comprises an indication of a relationship wherein an update to the first content item of the first type causes an update to a third content item of a third type; and

the method further comprises:

retrieving, by the client system in response to the request, a third file comprising third instructions for accessing or rendering data representing content items of the third type; and

receiving, by the client system, an additional request from the user to update the first content item via the graphical user interface;

generating, at the client system, an additional grouped database query for all data stored in the remote master database that are likely to be updated due to the additional request by:

generating, based on the first instructions from the first file, a first additional database query for accessing first updated data representing the updated first content item; and

generating, based on the third instructions from the third file, a second additional database query for accessing data representing the updated third content item, the additional grouped database query comprising the first additional database query and the second additional database query;

submitting, from the client system, the additional grouped database query to the server system to reduce the network requests to the server system;

receiving, at the client system, an additional query result corresponding to the additional grouped database query from the server system; and

saving, at the client system, the additional query result in the local database.

16. The method of claim 15 , further comprising presenting, to the user before submitting the additional grouped database query to the server system, an updated graphical representation of the updated first content item.

17. The method of claim 16 , further comprising:

after the presenting, receiving a third request for viewing an updated graphical representation of the updated third content item;

retrieving the data representing the updated third content item from the local database; and

presenting a graphical representation of the updated third content item based on the data representing the updated third content item.

18. The system of claim 6 , wherein:

the first file further comprises an indication of a relationship wherein an update to the first content item of the first type causes an update to the second content item of the second type;

the first receiving unit is further configured to receive an additional request from the user to update the first content item via the graphical user interface;

the identifying unit is further configured to generate an additional grouped database query for all data stored in the remote master database that are likely to be updated due to the additional request by:

generating, based on the first instructions from the first file, a first additional database query for accessing first updated data representing the updated first content item; and

generating, based on the second instructions from the second file, a second additional database query for accessing second updated data representing the updated second content item, the additional grouped database query comprising the first additional database query and the second additional database query;

the submitting unit is further configured to submit the additional grouped database query to the server system to reduce the network requests to the server system;

the second receiving unit is further configured to receive an additional query result corresponding to the additional grouped database query from the server system; and

the saving unit is further configured to save the additional query result in the local database.

19. The system of claim 18 , wherein the rendering unit is further configured to present, to the user before the additional grouped database query is submitted to the server system, an updated graphical representation of the updated first content item.

20. The system of claim 19 , wherein:

the first receiving unit is further configured to receive, after the presenting, a third request for viewing an updated graphical representation of the updated second content item; and

the rendering unit is further configured to:

retrieve the second updated data representing the updated second content item from the local database; and

present an updated graphical representation of the updated second content item based on the second updated data.

Assignments (3)
CHANGE OF NAME Recorded Jan 11, 2022
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058685/0901 →
CORRECTIVE ASSIGNMENT TO CORRECT THE COMMA AFTER THE PERIOD IN "INC" IN THE ASSIGNEE'S NAME. THE ASSIGNEE'S NAME SHOULD APPEAR: FACEBOOK, INC. PREVIOUSLY RECORDED AT REEL: 050102 FRAME: 0747. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Aug 9, 2021
From: CHEN, JING; ZHENG, YUZHI; KUENZEL, LANEY ELIZABETH; YUNG, TIMOTHY ROBERT; ROCH IV, LEWIS MARSHALL
To: FACEBOOK, INC.
Reel/Frame 057119/0704 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 20, 2019
From: CHEN, JING; ZHENG, YUZHI; KUENZEL, LANEY ELIZABETH; YUNG, TIMOTHY ROBERT; ROCH IV, LEWIS MARSHALL
To: FACEBOOK, INC.,
Reel/Frame 050102/0747 →