IP Library Granted Patent US 11,716,406
Granted Patent B2
US 11,716,406 · App. 17/826,746 · Granted Aug 1, 2023

Data caching for cloud services

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,716,406
App. No.
17/826,746
Filed
May 27, 2022
Granted
Aug 1, 2023
Kind
B2
Art Unit
2445
USPC
709/213
Abstract

Methods and systems for caching data for resources using a shared cache are described herein. The data may be stored in a configuration service, in the resources, or in the shared cache. The data stored in the configuration service may be modified. The data stored in the resources and in the shared cache may be updated according to the modified data in the configuration service. The data stored in the configuration service, in the resources, or in the shared cache may be used based on an operation mode.

Claims (60)

1. A method comprising:

receiving, by a computing device and from a user device, a request to access a virtual machine;

based on a load of a configuration service satisfying a threshold, determining whether configuration data associated with the virtual machine is stored in a shared cache;

after determining that the configuration data is not stored in the shared cache, retrieving the configuration data from the configuration service;

updating the shared cache with the configuration data; and

configuring the virtual machine using the configuration data in the updated shared cache based on the load of the configuration service satisfying the threshold.

2. The method of claim 1 , further comprising:

after determining that the configuration data is stored in the shared cache, retrieving the configuration data from the shared cache; and

configuring the virtual machine using the retrieved configuration data from the shared cache based on the load of the configuration service satisfying the threshold.

3. The method of claim 1 , further comprising:

determining, based on business hours of an organization associated with the user device, the load of the configuration service.

4. The method of claim 1 , further comprising:

receiving, within a period of time, a plurality of requests to access virtual machines; and

determining, based on a quantity of the plurality of requests, the load of the configuration service.

5. The method of claim 1 , wherein the updating the shared cache with the configuration data comprises:

after determining that the configuration data for the virtual machine is not stored in the shared cache, sending, to the configuration service, a request associated with the configuration data for the virtual machine;

receiving, from the configuration service, a response associated with the configuration data for the virtual machine;

determining, based on the response received from the configuration service, the configuration data for the virtual machine; and

inserting, into the shared cache, the configuration data for the virtual machine.

6. The method of claim 1 , wherein the updating the shared cache with the configuration data is based on detecting a change of the configuration data stored in the configuration service.

7. The method of claim 1 , wherein the configuration data for the virtual machine comprises one or more of a Central Processing Unit (CPU) capacity of the virtual machine, a Random Access Memory (RAM) capacity of the virtual machine, or a storage capacity of the virtual machine.

8. The method of claim 1 , wherein the shared cache comprises an in-memory database.

9. The method of claim 1 , further comprising:

after updating the shared cache with the configuration data, replacing the configuration data stored in a local storage of the virtual machine with the configuration data.

10. The method of claim 1 , wherein the configuration data for the virtual machine expires in the shared cache after an expiration period, and wherein the method further comprises:

based on the load of the configuration service satisfying the threshold, refreshing the expiration period.

11. The method of claim 1 , further comprising:

receiving, by the computing device, a request to access a second virtual machine; and

based on the load of the configuration service not satisfying the threshold, sending, by the computing device and to the configuration service, a request to determine configuration data for the second virtual machine.

12. A computing device comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the computing device to:

receive, from a user device, a request to access a virtual machine;

based on a load of a configuration service satisfying a threshold, determine whether configuration data associated with the virtual machine is stored in a shared cache;

after determining that the configuration data is not stored in the shared cache, retrieve the configuration data from the configuration service;

update the shared cache with the configuration data; and

configure the virtual machine using the configuration data in the updated shared cache based on the load of the configuration service satisfying the threshold.

13. The computing device of claim 12 , wherein the memory stores additional instructions that, when executed by the one or more processors, cause the computing device to:

after determining that the configuration data is stored in the shared cache, retrieve the configuration data from the shared cache; and

configure the virtual machine using the retrieved configuration data from the shared cache based on the load of the configuration service satisfying the threshold.

14. The computing device of claim 12 , wherein the request to access the virtual machine comprises:

an identifier associated with the virtual machine; and

an identifier of configuration data, for the virtual machine, stored in a local storage of the virtual machine.

15. The computing device of claim 14 , wherein the memory stores additional instructions that, when executed by the one or more processors, cause the computing device to:

based on hashing the configuration data stored in the local storage of the virtual machine, generating the identifier of the configuration data stored in the local storage of the virtual machine.

16. The computing device of claim 14 , wherein the shared cache is configured to:

search, in the shared cache and based on the identifier associated with the virtual machine, the configuration data in the updated shared cache;

generate, based on the configuration data in the updated shared cache, an identifier of the configuration data in the updated shared cache; and

based on determining that the identifier of the configuration data stored in the local storage of the virtual machine corresponds to the identifier of the configuration data in the updated shared cache, determine that the configuration data stored in the local storage of the virtual machine corresponds to the configuration data in the updated shared cache.

17. The computing device of claim 12 , wherein the configuration data for the virtual machine comprises one or more of a Central Processing Unit (CPU) capacity of the virtual machine, a Random Access Memory (RAM) capacity of the virtual machine, or a storage capacity of the virtual machine.

18. One or more non-transitory computer readable media storing computer readable instructions that, when executed, cause a computing device to:

receive, from a user device, a request to access a virtual machine;

based on a load of a configuration service satisfying a threshold, determine whether configuration data associated with the virtual machine is stored in a shared cache;

after determining that the configuration data is not stored in the shared cache, retrieve the configuration data from the configuration service;

update the shared cache with the configuration data; and

configure the virtual machine using the configuration data in the updated shared cache based on the load of the configuration service satisfying the threshold.

19. The one or more non-transitory computer readable media of claim 18 , wherein the configuration data for the virtual machine comprises one or more of a Central Processing Unit (CPU) capacity of the virtual machine, a Random Access Memory (RAM) capacity of the virtual machine, or a storage capacity of the virtual machine.

20. The one or more non-transitory computer readable media of claim 18 , wherein the request to access the virtual machine comprises:

an identifier associated with the virtual machine; and

an identifier of configuration data, for the virtual machine, stored in a local storage of the virtual machine.