IP Library Granted Patent US 11,386,183
Granted Patent B2
US 11,386,183 · App. 17/382,512 · Granted Jul 12, 2022

Systems and methods for predictive caching

Inventors: Chi Ho Yoon (Fairfax, VA); Zhijian Xu (Fairfax, VA); Ji Jin (Vienna, VA); Shrimohan Damani (Aldie, VA)
Assignee: MicroStrategy Incorporated
G06F16/9574G06F11/3423G06F16/90335G06F16/9535
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,386,183
App. No.
17/382,512
Granted
Jul 12, 2022
Kind
B2
Abstract

A method for predictive caching may include determining previous user activity related to data items and/or documents, receiving a request to view a document from a user, predicting data items to pre-cache based on the previous user activity and at least one other factor, prioritizing the predicted data items for pre-caching, dividing the prioritized data items for pre-caching into a plurality of groups, downloading prioritized data items for each group among the plurality of groups according to the prioritization of the predicted data items, and displaying a view of the document after data items, corresponding to the request, are received.

Claims (67)

1. A computer-implemented method for predictive caching, the method comprising:

determining previous user activity related to data items and/or documents;

receiving a request to view a document from a user;

predicting data items to pipe-cache based on the previous user activity and at least one other factor;

prioritizing the predicted data items for pre-caching;

dividing the prioritized data items for pre-caching into a plurality of groups;

downloading prioritized data items for each group among the plurality of groups according to the prioritization of the predicted data items; and

displaying a view of the document after data items, corresponding to the request, are received;

wherein downloading prioritized data items further comprises:

checking a status of a server from which the data items will be downloaded and a load level of the server from which the data items will be downloaded;

determining that the server is unable to download the data items;

upon determining that the server is unable to download the data items, applying a probability to determine not to send a request for the data items to the sever;

upon determining not to send the request to the server, waiting a random time interval; and

re-checking the status of the server and the load level of the server.

2. The computer-implemented method of claim 1 , wherein predicting data items to pre-cache is performed according to documents most recently used by the user, documents most used by the user, recently added documents, and/or documents recently collaborated upon by the user.

3. The computer-implemented method of claim 1 , further comprising:

downloading data items for a first group among the plurality of groups;

waiting a predetermined period of time; and

downloading data items for a first group among the plurality of groups.

4. The computer-implemented method of claim 1 , wherein a predicted data item that is certified by an administrator has a higher priority for downloading.

5. The computer-implemented method of claim 1 , wherein data items related to a newly-created document or data items related to a document subject to a new collaboration have a higher priority for downloading.

6. The computer-implemented method of claim 1 , wherein a number of data items in each group is determined based on a load level of a server from which the data items will be downloaded.

7. A system for predictive caching, the system comprising:

at least one data storage device storing instructions for predictive caching in an electronic storage medium; and

at least one processor configured to execute the instructions to perform a method including:

determining previous user activity related to data items and/or documents;

receiving a request to view a document from a user;

predicting data items to pre-cache based on the previous user activity and at least one other factor;

prioritizing the predicted data items for pre-caching;

dividing the prioritized data items for pre-caching into a plurality of groups;

downloading prioritized data items for each group among the plurality of groups according to the prioritization of the predicted data items; and

displaying a view of the document after data items, corresponding to the request, are received;

wherein downloading prioritized data items further comprises:

checking a status of a server from which the data items will be downloaded and a load level of the server from which the data items will be downloaded;

determining that the server is unable to download the data items;

upon determining that the server is unable to download the data items, applying a probability to determine not to send a request for the data items to the server;

upon determining not to send the request to the server, waiting a random time interval; and

re-checking the status of the server and the load level of the server.

8. The system of claim 7 , wherein predicting data items to pre-cache is performed according to documents most recently used by the user, documents most used by the user, recently added documents, and documents recently collaborated upon by the user.

9. The system of claim 7 , wherein the system is further configured for:

downloading data items for a first group among the plurality of groups;

waiting a predetermined period of time; and

downloading data items for a first group among the plurality of groups.

10. The system of claim 7 , wherein a predicted data item that is certified by an administrator has a higher priority for downloading.

11. The system of claim 7 , wherein data items related to a newly-created document or data items related to a document subject to a new collaboration have a higher priority for downloading.

12. The system of claim 7 , wherein a number of data items in each group is determined based on a load level of a server from which the data items will be downloaded.

13. A non-transitory machine-readable medium storing instructions that, when executed by a computing system, causes the computing system to perform a method for predictive caching, the method including:

determining previous user activity related to data items and/or documents;

receiving a request to view a document from a user;

predicting data items to pre-cache based on the previous user activity and at least one other factor;

prioritizing the predicted data items for pre-caching;

dividing the prioritized data items for pre-caching into a plurality of groups;

downloading prioritized data items for each group among the plurality of groups according to the prioritization of the predicted data items; and

displaying a view of the document after data items, corresponding to the request, are received;

wherein downloading prioritized data items further comprises:

checking a status of a server from which the data items will be downloaded and a load level of the server from which the data items will be downloaded;

determining that the server is unable to download the data items;

upon determining that the server is unable to download the data items, applying a probability to determine not to send a request for the data items to the server;

upon determining not to send the request to the server, waiting a random time interval; and

re-checking the status of the server and the load level of the server.

14. The non-transitory machine-readable medium of claim 13 , wherein predicting data items to pre-cache is performed according to documents most recently used by the user, documents most used by the user, recently added documents, and documents recently collaborated upon by the user.

15. The non-transitory machine-readable medium of claim 13 , the method further comprising:

downloading data items for a first group among the plurality of groups;

waiting a predetermined period of time; and

downloading data items for a first group among the plurality of groups.

16. The non-transitory machine-readable medium of claim 15 , wherein a predicted data item that is certified by an administrator has a higher priority for downloading.

17. The non-transitory machine-readable medium of claim 15 , wherein data items related to a newly-created document or data items related to a document subject to a new collaboration have a higher priority for downloading.

Assignments (5)
CHANGE OF NAME Recorded Aug 19, 2025
From: MICROSTRATEGY INCOPORATED
To: STRATEGY INC
Reel/Frame 072513/0437 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT REEL/FRAME: 056647/0687, REEL/FRAME: 057435/0023, REEL/FRAME: 059256/0247, REEL/FRAME: 062794/0255 AND REEL/FRAME: 066663/0713 Recorded Sep 26, 2024
From: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS SUCCESSOR IN INTEREST TO U.S. BANK NATIONAL ASSOCIATION, IN ITS CAPACITY AS COLLATERAL AGENT FOR THE SECURED PARTIES
To: MICROSTRATEGY INCORPORATED; MICROSTRATEGY SERVICES CORPORATION
Reel/Frame 069065/0539 →
SUPPLEMENTARY PATENT SECURITY AGREEMENT Recorded Feb 18, 2022
From: MICROSTRATEGY INCORPORATED; MICROSTRATEGY SERVICES CORPORATION
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 059256/0247 →
SUPPLEMENTARY PATENT SECURITY AGREEMENT Recorded Sep 2, 2021
From: MICROSTRATEGY INCORPORATED; MICROSTRATEGY SERVICES CORPORATION
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 057435/0023 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2021
From: YOON, CHI HO; XU, ZHIJIAN; JIN, JI; DAMANI, SHRIMOHAN
To: MICROSTRATEGY INCORPORATED
Reel/Frame 056945/0822 →
Continuity (2)
Provisional Application 63061868 · Aug 6, 2020
Related Publication 20220043880A1 · Feb 10, 2022