IP Library Granted Patent US 12,197,337
Granted Patent B2
US 12,197,337 · App. 17/443,401 · Granted Jan 14, 2025

Versioning group cache system

Inventors: Chunhui Liu (Hefei, CN); Hongjian Zhao (Campbell, CA); Jian Zhou (Hefei, CN)
Assignee: Zoom Video Communications, Inc.
G06F12/0864G06F16/2379G06F2212/608
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 12,197,337
App. No.
17/443,401
Granted
Jan 14, 2025
Kind
B2
Abstract

A versioning group cache system uses cache keys which each include, amongst other things, version information and a group key. When a cache key is first updated to include these, the cache system determines the group key and adds version information thereto to produce the cache key, which is mapped to cached data. When the cache key is later updated, the version information is updated to produce an updated cache key which is mapped to the cached data. The cache key updating is in response to a change request received at the cache system. The change request includes a command processable at the cache system in connection with cached data and/or cache keys. For example, the change request may be a request for a batch deletion of cache keys. The versioning group cache system fulfills the change requests with efficient use of system resources.

Claims (47)

1. A method, comprising:

receiving a change request, at an in-memory cache system that uses a key-value data store to access cached data stored in a cache of the in-memory cache system and that is implemented by a server, for changes to the cached data corresponding to one or more cache keys, wherein each cache key

is a key value that includes version information of the cache key and a group key, and wherein each cache key—is mapped to values of data stored in the cache;

and

performing the change request by:

producing, by the server, new cache keys for each of the one or more cache keys, wherein each new cache key includes updated version information of the new cache key and updated mappings to values of data stored in the cache corresponding to the change request; and

storing, by the server, the new cache keys within the key-value data store.

2. The method of claim 1 , further comprising:

receiving a second change request for changes to the cached data corresponding to a set of cache keys; and

performing the second change request by:

producing a second set of new cache keys for each of the set of cache keys, wherein each new cache key of the second set of new cache keys includes updated version information and updated mappings to values of data stored in the cache corresponding to the second change request.

3. The method of claim 1 , wherein, responsive to the mapping of the new cache keys to the cached data, the in-memory cache system continues to store the one or more cache key according to a time-to-live policy.

4. The method of claim 2 , wherein the change request and the second change request both identify the group key.

5. The method of claim 1 , wherein producing new cache keys with updated version information comprises:

incrementing a value of the version information responsive to identifying the new cache key based on the change request.

6. The method of claim 1 , wherein the one or more cache keys are unreadable using the in-memory cache system responsive to the producing of the new cache keys mapped to the values of data stored in the cache.

7. The method of claim 1 , wherein the change request includes a command to delete a batch of cache keys from the in-memory cache system.

8. The method of claim 7 , wherein the batch of cache keys are associated with a group of operators of a software platform which uses the in-memory cache system.

9. The method of claim 1 , wherein each new cache key includes a prefix, the updated version information, the group key, and an identifier associated with a corresponding initial cache key of the one or more cache keys.

10. The method of claim 9 , wherein the group key includes a category element of each initial cache key of the one or more cache keys and group information determined for each initial cache key.

11. An apparatus, comprising:

a memory; and

a processor configured to execute instructions stored in the memory to:

receive a change request, at an in-memory cache system that uses a key-value data store to access cached data stored in a cache of the in-memory cache system, for changes to the cached data corresponding to one or more cache keys, wherein each cache key

is a key value that includes version information of the cache key and a group key, and wherein each cache key is mapped to values of data stored in the cache; and

perform the change request to:

produce new cache keys for each of the one or more cache keys, wherein each new cache key includes updated version information of the new cache key and updated mappings to values of data stored in the cache corresponding to the change request; and

store the new cache keys within the key-value data store.

12. The apparatus of claim 11 , wherein the processor is further configured to execute the instructions to:

map each new cache key within the in-memory cache system to data values previously associated with a previous cache key responsive to determining that the new cache key is stored in the in-memory cache system; and

map each new cache key within the in-memory cache system to data values previously associated with an initial cache key responsive to determining that the new cache key is not stored in the in-memory cache system.

13. The apparatus claim 11 , wherein, responsive to the mapping of new cache key to the data values previously associated with a previous cache key, the in-memory cache system continues to store the previous cache key according to a time-to-live policy.

14. The apparatus of claim 12 , wherein the previous cache key is unreadable using the in-memory cache system responsive to the mapping of the new cache key to the data values previously associated with the previous cache key.

15. The apparatus of claim 11 , wherein the change request identifies the group key.

16. The apparatus of claim 11 , wherein the change request includes a command to delete a batch of cache keys including the cache key having the group key from the in-memory cache system.

17. A system, comprising:

a server device implementing an in-memory cache system, that uses a key-value data store to access cached data stored in a cache of the in-memory cache system, configured to:

receive a change request for changes to the cached data corresponding to one or more cache keys, wherein each cache key

is a key value that includes version information of the cache key and a group key, and wherein each cache key is mapped to values of data stored in the cache; and

perform the change request to:

produce new cache keys for each of the one or more cache keys, wherein each new cache key includes updated version information of the new cache key and updated mappings to values of data stored in the cache corresponding to the change request; and

store the new cache keys within the key-value data store.

18. The system of claim 17 , wherein, to produce the new cache keys, the in-memory cache system is configured to:

identify a previous cache key of the one or more cache keys within the key-value data store of the in-memory cache system; and

increment the version information associated with the previous cache key.

19. The system of claim 17 , wherein, responsive to the mapping of the new cache key to the values of data previously mapped to by a previous cache key, the in-memory cache system continues to store the previous cache key according to a time-to-live policy.

20. The system of claim 17 , wherein the change request includes a command for a batch deletion of cache keys of the in-memory cache system and each new cache key is one of multiple updated cache keys produced in response to the change request.

Assignments (2)
CHANGE OF NAME Recorded Jan 7, 2025
From: ZOOM VIDEO COMMUNICATIONS, INC.
To: ZOOM COMMUNICATIONS, INC.
Reel/Frame 069839/0593 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2021
From: LIU, CHUNHUI; ZHAO, HONGJIAN; ZHOU, JIAN
To: ZOOM VIDEO COMMUNICATIONS, INC.
Reel/Frame 056979/0437 →