IP Library › Granted Patent US 11,507,566
Granted Patent B2
US 11,507,566 · App. 16/779,475 · Granted Nov 22, 2022

Managing objects in shared caches using multiple chains

Inventors: Serge Philippe Rielau (Alamo, CA); Rui Zhang (Fremont, CA)
Assignee: salesforce.com, inc.
G06F16/2379G06F16/24552
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,507,566
App. No.
16/779,475
Granted
Nov 22, 2022
Kind
B2
Abstract

A method for maintaining cache of database objects using a chain set that includes multiple chains each specifying an ordering of database objects is disclosed. In response to a change of state of a particular database object, a corresponding chain is selected. The selected chain is then locked, the state of the particular database object changed, and then the selected chain is unlocked.

Claims (52)

1. A method, comprising:

maintaining, by a computer system, a chain set having a plurality of chains, wherein each chain of the plurality of chains specifies an ordering of database objects that are stored in a cache;

monitoring, by the computer system, respective states of a plurality of database objects;

in response to determining that a state of a particular database object has changed, selecting, by the computer system, a particular one of the plurality of chains corresponding to the particular database object, wherein the particular one of the plurality of chains is selected based on a version of an application utilizing the particular database object; and

updating, by the computer system, the particular chain without preventing other ones of the plurality of chains from being accessed during the updating, wherein the updating includes:

locking the particular chain;

changing the locked particular chain to reflect a changed state of the particular database object; and

after the updating, unlocking the particular chain.

2. The method of claim 1 , wherein changing the locked particular chain includes adding the particular database object to the chain.

3. The method of claim 1 , wherein changing the locked particular chain includes removing the particular database object from the chain.

4. The method of claim 1 , wherein the ordering of database objects that are stored in the cache is based, at least in part, on relative frequencies of use of the database objects.

5. The method of claim 1 , further comprising, in response to determining, by the computer system, that a new chain is to be added to the chain set:

locking the chain set;

adding the new chain to the chain set; and

unlocking the chain set.

6. The method of claim 5 , further comprising, performing, by the computer system, a garbage collection operation on the chain set, in response to determining a number of chains included in the chain set is greater than a threshold value.

7. A non-transitory computer readable medium having programming instructions stored thereon that are capable of causing a computer system to implement operations comprising:

maintaining, by the computer system, a chain set having a plurality of chains, wherein each chain of the plurality of chains specifies an ordering of database objects that are stored in a cache;

monitoring, by the computer system, respective states of a plurality of database objects;

in response to determining that a state of a particular database object has changed, selecting, by the computer system, a particular one of the plurality of chains corresponding to the particular database object, wherein the particular one of the plurality of chains is selected based on a version of an application utilizing the particular database object; and

updating, by the computer system, the particular chain without preventing other ones of the plurality of chains from being accessed during the updating, wherein the updating includes:

locking the particular chain;

changing the locked particular chain to reflect a changed state of the particular database object; and

after the updating, unlocking the particular chain.

8. The non-transitory computer readable storage medium of claim 7 , wherein changing the locked particular chain includes adding the particular database object to the chain.

9. The non-transitory computer readable storage medium of claim 7 , wherein changing the locked particular chain includes removing the particular database object from the chain.

10. The non-transitory computer readable storage medium of claim 7 , wherein the ordering of database objects that are stored in the cache is based, at least in part, on relative frequencies of use of the database objects.

11. The non-transitory computer readable storage medium of claim 7 , further comprising, in response to determining, by the computer system, that a new chain is to be added to the chain set:

locking the chain set;

adding the new chain to the chain set; and

unlocking the chain set.

12. The non-transitory computer readable storage medium of claim 11 , further comprising, performing, by the computer system, a garbage collection operation on the chain set, in response to determining a number of chains included in the chain set is greater than a threshold value.

13. The non-transitory computer readable storage medium of claim 7 , wherein a first chain of the plurality of chains specifies an ordering of a first plurality of a set of database objects associated with a set of identifiers introduced by a first release of a software application, and wherein a second chain of the plurality of chains specifies an ordering of a second plurality of a set of database objects associated with a different set of identifiers introduced by a first or a second release of the software application.

14. A computer system, comprising:

one or more memories that, during operation, store instructions, and

one or more compute resources that, during operation, receive instructions from the one or more memories and execute the instructions to cause the computer system to perform operations including:

maintaining, by the computer system, a chain set having a plurality of chains, wherein each chain of the plurality of chains specifies an ordering of database objects that are stored in a cache;

monitoring, by the computer system, respective states of a plurality of database objects;

in response to determining that a state of a particular database object has changed, selecting, by the computer system, a particular one of the plurality of chains corresponding to the particular database object, wherein the particular one of the plurality of chains is selected based on a version of an application utilizing the particular database object; and

updating, by the computer system, the particular chain without preventing other ones of the plurality of chains from being accessed during the updating, wherein the updating includes:

locking the particular chain;

changing the locked particular chain to reflect a changed state of the particular database object; and

after the updating, unlocking the particular chain.

15. The computer system of claim 14 , wherein changing the locked particular chain includes adding the particular database object to the chain.

16. The computer system of claim 14 , wherein changing the locked particular chain includes removing the particular database object from the chain.

17. The computer system of claim 14 , wherein the ordering of database objects that are stored in the cache is based, at least in part, on relative frequencies of use of the database objects.

18. The computer system of claim 14 , further comprising, in response to determining, by the computer system, that a new chain is to be added to the chain set:

locking the chain set;

adding the new chain to the chain set; and

unlocking the chain set.

19. The computer system of claim 18 , further comprising, performing, by the computer system, a garbage collection operation on the chain set, in response to determining a number of chains included in the chain set is greater than a threshold value.

20. The computer system of claim 14 , wherein a first chain of the plurality of chains specifies an ordering of a first plurality of a set of database objects associated with a set of identifiers introduced by a first release of a software application, and wherein a second chain of the plurality of chains specifies an ordering of a second plurality of a set of database objects associated with a different set of identifiers introduced by a first or a second release of the software application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2020
From: RIELAU, SERGE PHILIPPE; ZHANG, RUI
To: SALESFORCE.COM, INC.
Reel/Frame 052233/0270 →
Continuity (1)
Related Publication 20210240697A1 · Aug 5, 2021