IP Library Granted Patent US 8,694,471
Granted Patent B2
US 8,694,471 · App. 11/463,493 · Granted Apr 8, 2014

System and method for updating a cache using a gating mechanism and events

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 8,694,471
App. No.
11/463,493
Granted
Apr 8, 2014
Kind
B2
Abstract

A client caches objects from a data set on a server. The client registers to receive notification of events that occur to cached objects. As events occur to cached objects, the client determines if a specified time interval has elapsed since the cached objects were last updated. If a specified time interval has elapsed, then the client updates the cached objects. If a specified time interval has not elapsed, then the client waits for the specified time to elapse, during which time additional updates to the objects on the server can occur.

Claims (50)

1. A computer-implemented method for updating a local cache of information stored on a server, comprising:

querying a data set on the server, the data set including at least one data object;

caching the results of the query in a cache on a client computer, wherein the cache includes at least one local object corresponding to the at least one data object;

registering with a persistent search module on the server to listen for events notifying a gating module on the client computer when the data object changes;

specifying a time interval before cached objects are updated;

receiving an event from the persistent search module indicating a change to the data object;

determining if the specified time interval has elapsed since the caching of the results responsive to receiving the event; and

updating the cache if the specified time interval has elapsed and the event was received indicating the change to the data object; and

delaying updating the cache if the specified time interval has not elapsed and the event was received indicating the change to the data object.

2. A method according to claim 1 , wherein

updating the cache if the specified time interval has elapsed includes updating the local object.

3. A method according to claim 1 , wherein updating the cache if the specified time interval has elapsed includes querying the data set on the server.

4. A method according to claim 1 , further comprising waiting for a second event without updating the cache if the specified time interval has not elapsed.

5. A method according to claim 4 , further comprising:

receiving a second event; and

determining if the specified time interval has elapsed since the caching of the results responsive to receiving the second event.

6. A method according to claim 1 , wherein querying a data set on the server includes querying a data set implemented according to a lightweight directory access protocol (LDAP).

7. An article, comprising a storage medium, said storage medium having stored thereon instructions, that, when executed by a machine, result in:

querying a data set on a server, the data set including at least one data object;

caching the results of the query in a cache on a client computer, wherein the cache includes at least one local object corresponding to the at least one data object;

registering with a persistent search module on the server to listen for events notifying a gating module on the client computer when the data object changes;

specifying a time interval before cached objects are updated;

receiving an event indicating a change to the data object;

determining if the specified time interval has elapsed since the caching of the results responsive to receiving the event; and

updating the cache if the specified time interval has elapsed and the event was received indicating the change to the data object; and

delaying updating the cache if the specified time interval has not elapsed and the event was received indicating the change to the data object.

8. An article according to claim 7 , wherein

updating the cache if the specified time interval has elapsed includes updating the local object.

9. An article according to claim 7 , wherein updating the cache if the specified time interval has elapsed includes querying the data set on the server.

10. An article according to claim 7 , further comprising waiting for a second event without updating the cache if the specified time interval has not elapsed.

11. An article according to claim 10 , further comprising:

receiving a second event; and

determining if the specified time interval has elapsed since the caching of the results responsive to receiving the second event.

12. A article according to claim 7 , wherein querying a data set on the server includes querying a data set implemented according to a lightweight directory access protocol (LDAP).

13. A method according to claim 1 , wherein caching the results of the query includes caching an object label and an object value for the local object.

14. A method according to claim 1 , wherein caching the results of the query includes caching a timestamp indicating when the local object was last updated.

15. A method for updating a local cache of information stored on a server, comprising:

querying a data set on the server, the data set including at least one data object;

caching the results of the query in a cache on a client computer, wherein the cache includes at least one local object corresponding to the at least one data object;

registering with a persistent search module on the server to listen for events related to the data object;

receiving an event from the persistent search module at a gating module on the client, the event indicating a change to the data object;

determining a comparison result responsive to receiving the event, including comparing a specified time interval to a timestamp identifying when the local object was last updated;

updating the cache if the determining indicates the specified time interval has elapsed since the local object was last updated; and

setting a flag associated with the local object if the determining indicates the specified time interval has not elapsed since the local object was last updated, the flag indicating that the data object has changed and that the local object has not been updated.

16. A method according to claim 15 , further comprising:

receiving a second event from the persistent search module indicating a second change to the data object; and

updating the local object responsive to receiving the second event if the specified time interval has elapsed since the local object was last updated.

17. A method according to claim 15 , wherein the results of the query comprise a plurality of data objects and the cache includes a plurality of local objects corresponding to the plurality of data object and further comprising:

receiving a second event from the persistent search module indicating a change to at least one of the plurality of data objects; and

updating each of the plurality of local objects for which an associated flag has been set if the specified time interval has elapsed since the plurality of local objects were last updated.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2011
From: NOVELL, INC.
To: CPTN HOLDINGS LLC
Reel/Frame 027147/0151 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2011
From: CPTN HOLDINGS LLC
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 027147/0396 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2006
From: DANOYAN, MR. ALEXANDER Y
To: NOVELL, INC.
Reel/Frame 018080/0857 →