Patent ID: 7669015

Claim:
A method comprising: at one or more computers, maintaining a set of shared data utilized by multiple processes executing in parallel, providing a globally accessible version information variable that changes over time, for each of at least two variables stored in the set of shared data, maintaining a corresponding location to store a respective instantaneous data value associated with the globally accessible version information variable, receiving a first query for a current data value associated with the globally accessible version information variable around a respective start time of a transaction executed by a given process of the multiple processes, providing the current data value associated with the globally accessible version information variable to the given process, after receiving the first query and after the start time of the transaction, receiving a second query associated with the transaction for respective version information associated with a corresponding variable read from the shared data and used to produce a respective transaction outcome associated with the transaction, the respective version information set to a respective value of the globally accessible version information variable at a time when the corresponding variable was last written to by one of the multiple processes, and forwarding the respective version information associated with the corresponding variable enabling the given process to abort the transaction if the respective version information indicates that the corresponding variable in the set of shared data was modified by another one of the multiple processes after the respective start time of the transaction.