IP Library Granted Patent US 6,970,981
Granted Patent B2
US 6,970,981 · App. 10/305,759 · Granted Nov 29, 2005

Method and apparatus to maintain consistency between an object store and a plurality of caches utilizing transactional updates to data caches

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 6,970,981
App. No.
10/305,759
Granted
Nov 29, 2005
Kind
B2
Abstract

A method and system to maintain cached objects. The method includes locking a plurality of caches to prevent subsequent write operations to the plurality of caches upon notification of an update operation to a plurality of objects in an object store. The plurality of caches is updated as a common transaction. The locking may include identifying each of the plurality of caches as having registered an interest that is affected by the update operation, and identifying further caches associated with the object store as not having registered an interest that is affected by the update operation.

Claims (63)

1. A computer-implemented method to maintain cache consistency, the method including:

upon notification of an update operation to a plurality of objects in an object store, locking a plurality of caches to prevent subsequent write operations to the plurality of caches; and

updating the plurality of caches as a common transaction.

2. The method of claim 1 wherein the locking includes identifying each of the plurality of caches as having registered an interest that is affected by the update operation, and identifying further caches associated with the object store as not having registered an interest that is affected by the update operation.

3. The method of claim 2 wherein the identifying includes identifying at least one of the plurality of caches as having a registered an interest in an object type that is the subject of the update operation to the object store.

4. The method of claim 2 wherein the identifying includes identifying at least one of the plurality of caches as having registered an interest in a specific object that is a subject of the update operation to the object store.

5. The method of claim 1 including concurrently locking the plurality of caches upon notification of the update operation to the object store.

6. The method of claim 1 including registering an interest by each of the plurality of caches in at least one object stored within the object store.

7. The method of claim 6 wherein the interest of at least one cache of the plurality of caches is registered in an object type.

8. The method of claim 6 wherein the interest of at least one cache of the plurality of caches is registered in a specific object.

9. The method of claim 8 wherein the interest of the at least one cache is registered utilizing an object identifier associated with the specific object.

10. The method of claim 1 wherein the common transaction includes a plurality of write operations to objects contained within the plurality of caches, wherein the plurality of write operations are to be performed as a single atomic event.

11. The method of claim 1 wherein each of the caches of the plurality of caches has a respective monitor associated therewith, each of the monitors being to coordinate access to shared data.

12. The method of claim 11 wherein each of the monitors is a multiple-reader, single writer monitor that facilitates multiple concurrent read operations to the associated cache and that facilitates a single write operation of the associated cache at any one time.

13. The method of claim 1 including, responsive to the notification of the update operation to the object store, dynamically generating a map identifying each of the plurality of caches as having registered an interest that is affected by the update operation, the map further identifying objects in each of the plurality of caches of that are affected by the update operation.

14. The method of claim 1 including instantiating a notification thread responsive to the notification of the update operation, the notification thread operating to lock the plurality of caches to prevent the subsequent write operations.

15. The method of claim 1 wherein the plurality of caches includes a children cache distinct from a parent cache.

16. The method of claim 1 wherein the plurality of caches includes a references cache distinct from a cache of an object being referenced.

17. A system to maintain cached objects, the system including:

a locking mechanism to allow locking a plurality of caches upon notification of an update operation to a plurality of objects in an object store to prevent subsequent write operations; and

an update mechanism to update the plurality of caches as a common transaction.

18. The system of claim 17 wherein the locking mechanism allows the locking by identifying each of the plurality of caches as having registered an interest that is affected by the update operation, and by identifying further caches associated with the object store as not having registered an interest that is affected by the update operation.

19. The system of claim 18 wherein the identifying is to allow identifying at least one of the plurality of caches as having registered an interest in an object type that is the subject of the update operation to the object store.

20. The system of claim 18 wherein the identifying is to allow identifying at least one of the plurality of caches as having registered an interest in a specific object that is the subject of the update operation to the object store.

21. The system of claim 18 including a registering mechanism to allow registering an interest by each of the plurality of caches in at least one object stored within the object store.

22. The system of claim 21 wherein the interest of at least one cache of the plurality of caches is registered in an object type.

23. The system of claim 21 wherein the interest of at least one cache of the plurality of caches is registered in a specific object.

24. The system of claim 23 wherein the interest of the at least one cache is registered utilizing an object identifier associated with the specific object.

25. The system of claim 17 wherein the locking mechanism is to allow concurrently locking the plurality of caches upon notification of the update operation to the object store.

26. The system of claim 17 wherein the common transaction includes a plurality of write operations to objects within the plurality of caches, wherein the plurality of write operations are to be treated as a single atomic event.

27. The system of claim 17 wherein each of the caches of the plurality of caches has a respective monitor associated therewith, each of the monitors being to coordinate access to shared data.

28. The system of claim 27 wherein each of the monitors is a multiple-reader, single writer monitor that facilitates multiple concurrent read operations to the associated cache and that facilitates a single write operation of the associated cache at any one time.

29. The system of claim 17 including, an identification mechanism to dynamically generate a map upon notification of the update operation to the object store, identifying each of the plurality of caches as having registered an interest that is affected by the update operation, the map further identifying objects in each of the plurality of caches that are affected by the update operation.

30. The system of claim 17 including a notification mechanism to instantiate a notification thread responsive to the notification of the update operation, the notification thread operating to lock the plurality of caches to prevent the subsequent write operations.

31. The system of claim 17 including a monitoring mechanism to allow a plurality of applications to watch for changes to an object model created by another application.

32. A computer system to maintain cache consistency, the computer system comprising:

a memory,

one or more processors coupled to the memory; and

a set of computer instructions contained in the memory, the set of computer instructions including computer instructions which when executed by the one or more processors, cause the one or more processors to:

upon notification of an update operation to an object store, lock a plurality of caches to prevent subsequent write operations; and

update the plurality of caches as a common transaction.

33. The system of claim 32 , wherein the locking includes concurrently locking the plurality of caches upon notification of the update operation to the object store.

34. The system of claim 32 , wherein a set of computer instructions cause the one or more processors to register an interest by each of the plurality of caches in at least one object stored within the object store.

35. The system of claim 34 wherein the interest of at least one cache of the plurality of caches is registered in an object type.

36. The system of claim 34 wherein the interest of at least one cache of the plurality of caches is registered in a specific object.

37. The system of claim 32 , wherein a set of computer instructions cause the one or more processors to instantiate a notification thread responsive to the notification of the update operation, the notification thread operating to lock the plurality of caches to prevent the subsequent write operations to the plurality of caches.

38. A machine-readable medium embodying a sequence of instructions that, when executed by a machine, cause the machine to:

upon notification of an update operation to an object store, identify a plurality of caches to be notified of the update;

lock the plurality of caches to prevent subsequent write operations to the plurality of caches; and

update the plurality of caches as a common transaction.

39. The machine-readable medium of claim 38 wherein the identifying includes dynamically generating a map identifying the plurality of caches as having registered an interest in the update operation, the map further identifying objects in the object store that are affected by the update operation.

40. The machine-readable medium of claim 39 , wherein the identifying further includes identifying a plurality of objects that are of interest to at least one cache in the plurality of caches.

41. The machine-readable medium of claim 39 , wherein the interest in the update operation can be registered by an object type or an object ID.

42. The machine-readable medium of claim 41 , wherein updating includes:

initializing the objects to be added/updated/removed; and

copying the transient attributes from the associated cached objects.

43. The machine-readable medium of claim 38 wherein the locking includes concurrently locking the plurality of caches upon notification of the update operation to the object store.

44. A system to maintain cached objects, the system comprising:

means for identifying a plurality of caches to be notified of an update operation to an object store;

means for concurrently locking the plurality of caches to prevent subsequent write operations to the plurality of caches; and

means for updating the plurality of caches as a common transaction.

45. The system of claim 44 including means for registering an interest by each of the plurality of caches in at least one object stored within the object store.

46. The system of claim 44 including means for transactionally updating a plurality of objects in the object store.

Assignments (13)
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
CHANGE OF NAME Recorded Feb 7, 2023
From: TIBCO SOFTWARE INC.
To: CLOUD SOFTWARE GROUP, INC.
Reel/Frame 062714/0634 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
RELEASE REEL 052115 / FRAME 0318 Recorded Oct 3, 2022
From: KKR LOAN ADMINISTRATION SERVICES LLC
To: TIBCO SOFTWARE INC.
Reel/Frame 061588/0511 →
RELEASE (REEL 034536 / FRAME 0438) Recorded Sep 30, 2022
From: JPMORGAN CHASE BANK, N.A.
To: TIBCO SOFTWARE INC.
Reel/Frame 061574/0963 →
RELEASE (REEL 054275 / FRAME 0975) Recorded May 7, 2021
From: JPMORGAN CHASE BANK, N.A.
To: TIBCO SOFTWARE INC.
Reel/Frame 056176/0398 →
SECURITY AGREEMENT Recorded Nov 2, 2020
From: TIBCO SOFTWARE INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 054275/0975 →
SECURITY AGREEMENT Recorded Mar 6, 2020
From: TIBCO SOFTWARE INC.
To: KKR LOAN ADMINISTRATION SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 052115/0318 →
SECURITY INTEREST Recorded Dec 5, 2014
From: TIBCO SOFTWARE INC.; TIBCO KABIRA LLC; NETRICS.COM LLC
To: JPMORGAN CHASE BANK., N.A., AS COLLATERAL AGENT
Reel/Frame 034536/0438 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2003
From: KANALEY, MICAHEL JOHN
To: TIBCO SOFTWRE INC.
Reel/Frame 013731/0248 →