DISTRIBUTED TRANSACTION PROCESSING
First Claim
1. A method of processing a distributed transaction associated with an application, the application comprising application data stored in an in-memory data grid comprising a plurality of processing elements each having respective associated memory for storing a respective portion of the application data, the method comprising:
- initiating a distributed transaction by a client connected to the in-memory data grid;
executing the distributed transaction by processing elements of the in-memory data grid, the executing comprising performing processing at multiple processing elements of the grid, the processing resulting in changes to be made to application data stored in memory at respective processing elements;
transmitting processing result information defining the changes to be made to the application data from respective processing elements to a transaction manager during execution of the distributed transaction, the transaction manager storing transaction data enabling the state of the distributed transaction to be reconstructed at a processing element after an error occurring at the processing element during execution of the distributed transaction;
in response to an indication from the client, committing the changes to the in-memory application data at the processing elements, whereby modified application data elements are made available for subsequent access by the application; and
updating a persistent copy of application data stored on a persistent storage medium based on the processing result information received by the transaction manager.
4 Assignments
0 Petitions
Accused Products
Abstract
A system and method for processing a distributed transaction for an application are disclosed. Conventionally transactions on critical data (e.g. financial information) are processed using a database architecture whereby a persistent database (typically a redundant disk array) comprises the master record. In cases where large amounts of data need to be accessed but absolute data integrity is less critical, for example search engines, processing is conducted on live in-memory data without all the data being backed up, which can be much faster but data can be lost when processors fail. There have been attempts to use data grid architectures with some backup to persistent stores for more important data but these have either introduced disk access bottlenecks or required manual intervention in the event of failure. Aspects of the invention provide committal of distributed transactions independently of persistent storage which can make the speed advantages of data grid computing available for high volume distributed transactions, without losing the reliability of conventional database systems. The methods, systems and architecture are independent of the nature of the application or data.
-
Citations
88 Claims
-
1. A method of processing a distributed transaction associated with an application, the application comprising application data stored in an in-memory data grid comprising a plurality of processing elements each having respective associated memory for storing a respective portion of the application data, the method comprising:
-
initiating a distributed transaction by a client connected to the in-memory data grid; executing the distributed transaction by processing elements of the in-memory data grid, the executing comprising performing processing at multiple processing elements of the grid, the processing resulting in changes to be made to application data stored in memory at respective processing elements; transmitting processing result information defining the changes to be made to the application data from respective processing elements to a transaction manager during execution of the distributed transaction, the transaction manager storing transaction data enabling the state of the distributed transaction to be reconstructed at a processing element after an error occurring at the processing element during execution of the distributed transaction; in response to an indication from the client, committing the changes to the in-memory application data at the processing elements, whereby modified application data elements are made available for subsequent access by the application; and updating a persistent copy of application data stored on a persistent storage medium based on the processing result information received by the transaction manager. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method of processing a distributed transaction associated with an application, the application comprising application data stored in an in-memory data grid comprising a plurality of processing elements each having respective associated memory for storing a respective portion of the application data, the method comprising:
-
initiating a distributed transaction by a client connected to the in-memory data grid; executing the distributed transaction by processing elements of the in-memory data grid, the executing comprising performing processing at multiple processing elements of the grid, the processing resulting in changes to be made to application data stored in memory at respective processing elements; transmitting processing result information defining the changes to be made to the application data from respective processing elements to a transaction manager; in response to an indication from the client, committing the changes to the in-memory application data at the processing elements, whereby modified application data elements are made available for subsequent access by the application; asynchronously with the committing step, updating a persistent copy of application data stored on a persistent storage medium based on the processing result information received by the transaction manager. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 72)
-
-
44. A method of processing a transaction, comprising:
-
initiating a transaction by a client; performing processing at a processing element connected to the client, the processing element storing a plurality of data elements in a data area in memory, the processing resulting in changes to one or more of the data elements stored in the in-memory data area; transmitting processing result information specifying the changes to the data elements from the processing element to a transaction manager; receiving an instruction from the client to commit the transaction; committing the changes to the in-memory data area at the processing element, whereby modified data elements are made available for access by other transactions; and updating a persistent storage medium storing persistent copies of the data elements based on the processing result information received by the transaction manager. - View Dependent Claims (45)
-
-
46. A method of performing processing at a processing element, the processing element having access to data elements stored in a data area in memory associated with the processing element;
- the method comprising;
receiving a message to initiate processing; performing processing in response to the message, the processing resulting in changes to one or more data elements in the in-memory data area; transmitting processing result information specifying the changes to a transaction manager; receiving a commit message from the transaction manager; and committing the changes to the in-memory data area in response to the commit message. - View Dependent Claims (47, 48, 49, 50, 51, 52, 53, 54, 55, 56)
- the method comprising;
-
57. A method of managing a transaction by a transaction manager, comprising:
-
receiving from one or more processing elements participating in a transaction, processing results defining changes to be made to application data stored at the processing elements; receiving from a client an instruction to commit the transaction; performing commit processing to commit the transaction, the commit processing comprising transmitting a commit message to each of the processing elements instructing the processing elements to commit the application data changes at the processing elements; asynchronously with performing the commit processing, outputting update information for updating a copy of the application data stored in a storage medium separate from the processing elements, the update information based on the processing results received from the processing elements. - View Dependent Claims (58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71)
-
-
73. A processing system comprising:
-
an in-memory data grid for storing application data for an application and processing distributed transactions operating on the application data; a persistent data storage medium for persistently storing application data; and a transaction manager for receiving information specifying changes made to the in-memory data grid during processing of distributed transactions by the application and applying the changes to the persistent data storage medium.
-
-
74. A processing system comprising:
-
an in-memory data grid for storing application data for an application, the in-memory data grid comprising a plurality of processing elements, each configured to store a portion of the application data in memory and to perform processing actions relating to the portion of the application data as part of distributed transactions; a persistent data storage medium for persistently storing application data; and a transaction manager for managing distributed transactions executed by the application, wherein the transaction manager is configured to; receive information from each of a plurality of processing elements participating in a distributed transaction specifying application data changes resulting from processing performed by the respective processing element; and commit the distributed transaction by a process including; receiving a message instructing the transaction manager to commit the transaction; and after receipt of the message, transmitting messages to each participating processing element to commit data changes to the respective processing element'"'"'s in-memory application data; wherein the transaction manager is further configured, after the transaction has been committed, to update the persistent data storage medium based on the received information specifying application data changes. - View Dependent Claims (75, 76, 77)
-
-
78. A processing element comprising:
-
a data interface for accessing and modifying data elements in an in-memory data area associated with the processing element, the data interface configured to store separately from the data elements update information specifying changes made to data elements in the data area; and a transaction control interface for transmitting the update information to a transaction manager. - View Dependent Claims (79, 80, 81, 82, 83, 84)
-
-
85. A transaction buffer manager, comprising:
-
a buffer for storing transaction data for a transaction executed by one or more processing elements connected to the transaction buffer manager; a transaction buffer interface for receiving processing results from the one or more processing elements defining changes to be made to application data stored in memory at the processing elements and storing the received processing results in the buffer; and a persistence interface for updating a copy of the application data stored in a persistent storage medium based on the processing results stored in the buffer. - View Dependent Claims (86, 87, 88)
-
Specification