Cluster caching with concurrency checking
First Claim
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; and
notifying other non-database servers in the cluster that the data item in the database has been updated
1 Assignment
0 Petitions
Accused Products
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.
-
Citations
24 Claims
-
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; and
notifying other non-database servers in the cluster that the data item in the database has been updated - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. 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 - View Dependent Claims (9, 10, 11, 12)
-
-
13. 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, futher 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. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
-
21. A computer implemented method for updating a data item, comprising:
-
receiving a request to update a data item, the request being received by a non-database server storing a local copy of the data item;
processing the request using the local copy;
verifying that the local copy is a current copy of the data item; and
updating the data item in the database in response to the request if the local copy is a current copy. - View Dependent Claims (22, 23, 24)
-
Specification