IP Library › Granted Patent US 7,444,333
Granted Patent B2
US 7,444,333 · App. 11/338,969 · Granted Oct 28, 2008

Cluster caching with concurrency checking

Assignee: BEA Systems, Inc.
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 7,444,333
App. No.
11/338,969
Granted
Oct 28, 2008
Kind
B2
Abstract

Concurrency can be maintained in cluster caching when processing an update request on network server that is storing a local copy of a data item. The request can be processed using the local copy of the data item. A predicated update request can be sent to a network database storing the data item, wherein the database can commit the update if the local copy is current with the data item. If the local copy is not current, the network server can request a new copy, process the request using the current copy, and try another predicated request. The process can continue until the update is committed to the database or aborted. Once committed, any other servers in the cluster can be notified that the data item has been updated. Those other servers can drop any local copy of the data item and can request an updated copy of the data item.

Claims (49)

1. A computer implemented method for maintaining concurrency for a copy of a data item cached on a non-database server in a cluster of non-database servers, comprising:

receiving an update request, the update request being received by a non-database server in a cluster of non-database servers storing a local copy of a data item in local cache;

processing the request using the local copy of the data item;

sending a predicated update request to a database storing the data item, whereby the database updates the data item if the data item is current with the local copy, and whereby the database does not update the data item if the data item is not current with the local copy;

notifying other non-database servers in the cluster that the data item in the database has been updated; and

sending an additional predicated update request to a cluster database containing the data item, whereby the database updates the data item if the new copy is current with the data item before the update, and whereby the database does not update the data item if the new copy is not current with the data item before the update.

2. A computer implemented method according to claim 1 , further comprising:

receiving a message from the database to the non-database server indicating whether the data item has been updated.

3. A computer implemented method according to claim 1 , further comprising:

reading a data item from the database and storing a local copy of the data item in local cache on the non-database server.

4. A computer implemented method according to claim 1 , further comprising:

receiving an update request from a client to the non-database server.

5. A computer implemented method according to claim 1 , further comprising:

checking the local copy to determine whether the update request can be processed.

6. A computer implemented method according to claim 5 , further comprising:

updating the local copy on the non-database server if the data item in the database is updated.

7. A computer implemented method for maintaining concurrency for a copy of a data item cached on a non-database server in a cluster of non-database servers, comprising:

receiving an update request, the update request being received by a non-database server in a cluster of non-database servers storing a local copy of a data item in local cache;

processing the request using the local copy of the data item;

sending a predicated update request to a database storing the data item, whereby the database updates the data item if the data item is current with the local copy, and whereby the database does not update the data item if the data item is not current with the local copy;

requesting a current copy of the data item for the non-database server and sending another predicated update if the local copy is not current with the data item in the database, the step of requesting a current copy and sending another predicated update continuing until the database updating the data item; and

notifying other non-database servers in the cluster that the data item in the database has been updated.

8. A computer implemented method according to claim 7 , further comprising:

receiving a message from the database to the non-database server indicating whether the data item has been updated.

9. A computer implemented method according to claim 7 , further comprising:

reading a data item from the database and storing a local copy of the data item in local cache on the non-database server.

10. A computer implemented method according to claim 7 , further comprising:

receiving an update request from a client to the non-database server.

11. A computer implemented method according to claim 7 , further comprising:

checking the local copy to determine whether the update request can be processed.

12. A computer implemented method for maintaining concurrency for a copy of a data item cached on a non-database server in a cluster of non-database servers, comprising:

receiving an update request, the update request being received by a non-database server in a cluster of non-database servers storing a local copy of a data item in local cache;

processing the request using the local copy of the data item;

sending a predicated update request to a database storing the data item, whereby the database updates the data item if the data item is current with the local copy, and whereby the database does not update the data item if the data item is not current with the local copy;

requesting a current copy of the data item for the non-database server and sending another predicated update if the local copy is not current with the data item in the database, the step of requesting a current copy and sending another predicated update continuing until the database updating the data item; and

notifying other non-database servers in the cluster that the data item in the database has been updated, further comprising at least one of the additional limitations (a)-(f)

(a) multicasting an update message to the other non-database servers in the cluster of non-database servers that might be storing a local copy of the data item, as part of the notifying step;

(b) multicasting a version number for the data item to the other non-database servers in the cluster of non-database servers after the data item is updated, as part of the notifying step;

(c) contacting one of the other non-database servers in the cluster of non-database servers by a point-to-point connection to indicate that the data item has been updated, as part of the notifying step;

(d) heartbeating the version number for the data item to the other non-database servers in the cluster of non-database servers after the data item is updated, as part of the notifying step;

(e) dropping a local copy of the data item on one of the other non-database servers in the cluster of non-database servers after being notified that the data item has been updated;

(f) requesting an updated copy of the data item to one of the other non-database servers in the cluster of non-database servers after being notified that the data item has been updated.

13. The computer implemented method of claim 12 , wherein the at least one limitation is limitation (a).

14. The computer implemented method of claim 12 , wherein the at least one limitation is limitation (b).

15. The computer implemented method of claim 12 , wherein the at least one limitation is limitation (c).

16. The computer implemented method of claim 12 , wherein the at least one limitation is limitation (d).

17. The computer implemented method of claim 12 , wherein the at least one limitation is limitation (e).

18. The computer implemented method of claim 12 , wherein the at least one limitation is limitation (f).

19. The computer implemented method of claim 12 , wherein at least two limitations of limitations (a)-(f) are done.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2010
From: BEA SYSTEMS, INC.
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 025192/0244 →
Continuity (3)
Continuation 1021171300 · Aug 2, 2002
Provisional Application 6031618700 · Aug 30, 2001
Related Publication 20060123066A1 · Jun 8, 2006