Transactional cache versioning and storage in a distributed data grid
First Claim
1. A system for providing a transaction framework in a distributed data grid, said system comprising:
- a cluster of server nodes that store and manage data, said data being modified using a set of transactions; and
a client that establishes a connection to the cluster and maintains a commit version having a commit version value for each transaction of said set of transactions;
wherein the cluster of server nodes employs a set of distributed caches as internal system tables for storing natural keys, synthetic keys, and versioned cache values;
wherein said internal system tables include a natural table that maps a natural key associated with a transaction to one or more synthetic key associated with the transaction, whereby, by using the natural key and one or more synthetic keys associated with the transaction in combination, the set of distributed caches are enabled to store a plurality of versioned cache values simultaneously for each transaction;
wherein each server node in the cluster maintains for each transaction on the server node a current version having a current version value that is updated as messages are received from the client;
wherein when the client sends a message to a receiving server node of the cluster of server nodes, the client includes with the message a commit version value associated with the transaction;
wherein upon receiving the message, the receiving server node sets the current version maintained by the receiving server node to the maximum of the current version value being stored in said receiving server node and the associated transaction'"'"'s commit version value received in the message from the client, and sends a return message to the client, said return message including the current version value set by the receiving server node; and
wherein upon receiving the return message, the client sets the commit version to a commit version value greater than the maximum of the commit version value stored at the client and the current version value received from the receiving server node in the return message.
1 Assignment
0 Petitions
Accused Products
Abstract
A set of techniques are described for transactional cache versioning and data storage in a distributed data grid environment. A transaction coordinator maintains a commit version for each transaction. This version is updated over the course of the transaction. In addition, each cluster member maintains a local current version that is updated as messages are received from the client. When a client serving as a transaction coordinator sends a message, the transaction coordinator includes an associated transaction'"'"'s current version value with the message. On receiving a message, the receiving member process sets its current version to be the maximum of its own value and the received value. The receiving member process includes its current version in the return message to the sender. On receiving the return messages, the client sets the transaction'"'"'s commit version to be greater than the maximum of its own value and the received value.
69 Citations
18 Claims
-
1. A system for providing a transaction framework in a distributed data grid, said system comprising:
-
a cluster of server nodes that store and manage data, said data being modified using a set of transactions; and a client that establishes a connection to the cluster and maintains a commit version having a commit version value for each transaction of said set of transactions; wherein the cluster of server nodes employs a set of distributed caches as internal system tables for storing natural keys, synthetic keys, and versioned cache values; wherein said internal system tables include a natural table that maps a natural key associated with a transaction to one or more synthetic key associated with the transaction, whereby, by using the natural key and one or more synthetic keys associated with the transaction in combination, the set of distributed caches are enabled to store a plurality of versioned cache values simultaneously for each transaction; wherein each server node in the cluster maintains for each transaction on the server node a current version having a current version value that is updated as messages are received from the client; wherein when the client sends a message to a receiving server node of the cluster of server nodes, the client includes with the message a commit version value associated with the transaction; wherein upon receiving the message, the receiving server node sets the current version maintained by the receiving server node to the maximum of the current version value being stored in said receiving server node and the associated transaction'"'"'s commit version value received in the message from the client, and sends a return message to the client, said return message including the current version value set by the receiving server node; and wherein upon receiving the return message, the client sets the commit version to a commit version value greater than the maximum of the commit version value stored at the client and the current version value received from the receiving server node in the return message. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for providing a transaction framework in a distributed data grid, said method comprising:
-
storing a set of data on a cluster of server nodes, said data being modified using a set of transactions; maintaining a commit version for each transaction on a client that establishes a connection to the cluster; maintaining a set of distributed caches on set server nodes as internal system tables for storing natural keys, synthetic keys, and versioned cache values, wherein said internal system tables include a natural table that maps a natural key associated with a transaction to one or more synthetic key associated with the transaction, whereby, by using the natural key and one or more synthetic keys associated with the transaction in combination, the set of distributed caches are enabled to store a plurality of versioned cache values simultaneously for each transaction; maintaining on each server node in the cluster of server nodes and for each transaction on said each server node a current version having a current version value, said current version value being updated as messages are received from the client to the node; sending a message including an associated transaction'"'"'s current version value from the client to receiving server node of the cluster of server nodes; receiving the message at the receiving server node, wherein the receiving server node sets the current version value stored in the receiving server node to be the maximum of the current value being stored in said receiving node and the current version value received from the client; and sending a return message from the receiving server node to the client, said return message including the current version value set by the receiving server node; and wherein upon receiving the return message, the client sets the commit version to a commit version value greater than the maximum of the commit version value stored at the client and the current version value received from the receiving server node in with the return message. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A non-transitory computer readable medium including instructions stored thereon for providing a transaction framework in a distributed data grid, which instructions, when executed, cause a system to perform steps comprising:
-
storing a set of data on a cluster of server nodes, said data being modified using a set of transactions; maintaining a commit version for each transaction on a client that establishes a connection to the cluster; maintaining a set of distributed caches on set server nodes as internal system tables for storing natural keys, synthetic keys, and versioned cache values, wherein said internal system tables include a natural table that maps a natural key associated with a transaction to one or more synthetic key associated with the transaction, whereby, by using the natural key and one or more synthetic keys associated with the transaction in combination, the set of distributed caches are enabled to store a plurality of versioned cache values simultaneously for each transaction; maintaining on each server node in the cluster of server nodes and for each transaction on said each server node a current version having a current version value, said current version value being updated as messages are received from the client to the node; sending a message including an associated transaction'"'"'s current version value from the client to receiving server node of the cluster of server nodes; receiving the message at the receiving server node, wherein the receiving server node sets the current version value stored in the receiving server node to be the maximum of the current value being stored in said receiving node and the current version value received from the client; and sending a return message from the receiving server node to the client, said return message including the current version value set by the receiving server node; and wherein upon receiving the return message, the client sets the commit version to a commit version value greater than the maximum of the commit version value stored at the client and the current version value received from the receiving server node in with the return message. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification