Predictive log synchronization
First Claim
1. A computer-implemented method for sharing access to a data object by a plurality of threads, comprising:
- applying modification operations to the data object from a first thread of the plurality of threads on behalf of all other threads of the plurality of threads during a session in which the first thread owns a lock on the data object, wherein each of the modification operations corresponds to a respective entry recorded in a log by a respective thread of the plurality of threads;
predicting, for a second thread of the plurality of threads, a result of a particular operation requested by the second thread on the data object, wherein said predicting comprises using one or more entries in the log corresponding to one or more of the modification operations that have not yet been applied to the data object; and
performing one or more other operations in a non-blocking manner from the second thread during the session, wherein at least one other operation of the one or more other operations is dependent on the predicted result of the particular operation.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for coordinating shared access to data objects comprises applying modification operations to a data object from a first thread of a plurality of threads on behalf of all the other threads during a session in which the first thread owns a lock on the data object. Each modification operation corresponds to a respective entry recorded in a log associated with the data object by a respective thread. The method may further comprise predicting, for a second thread, a result of a particular operation requested by the second thread on the data object. The result may be predicted using log entries corresponding to modification operations that have not yet been applied to the data object. In addition, the method includes performing one or more other operations in a non-blocking manner from the second thread during the session, where at least one other operation is dependent on the predicted result.
8 Citations
20 Claims
-
1. A computer-implemented method for sharing access to a data object by a plurality of threads, comprising:
-
applying modification operations to the data object from a first thread of the plurality of threads on behalf of all other threads of the plurality of threads during a session in which the first thread owns a lock on the data object, wherein each of the modification operations corresponds to a respective entry recorded in a log by a respective thread of the plurality of threads; predicting, for a second thread of the plurality of threads, a result of a particular operation requested by the second thread on the data object, wherein said predicting comprises using one or more entries in the log corresponding to one or more of the modification operations that have not yet been applied to the data object; and performing one or more other operations in a non-blocking manner from the second thread during the session, wherein at least one other operation of the one or more other operations is dependent on the predicted result of the particular operation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system, comprising:
-
a processor; and memory coupled to the processor, wherein the memory stores program instructions executable by the processor to implement a mechanism to coordinate concurrent accesses to data objects, wherein according to the mechanism; a first thread of a plurality of threads applies modification operations to a data object behalf of all other threads of the plurality of threads during a session in which the first thread owns a lock on the data object, wherein each of the modification operations corresponds to a respective entry recorded in a log by a respective thread of the plurality of threads; a second thread of the plurality of threads predicts a result of a particular operation requested by the second thread on the data object, wherein said predicting comprises using one or more entries in the log corresponding to one or more of the modification operations that have not yet been applied to the data object; and the second thread performs one or more other operations in a non-blocking manner during the session, wherein the one or more other operations are dependent on the predicted result of the particular operation. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A computer-readable storage medium, comprising program instructions, wherein the instructions are computer executable to implement a mechanism to coordinate concurrent accesses to data objects, wherein according to the mechanism:
-
a first thread of a plurality of threads applies modification operations to a data object behalf of all other threads of the plurality of threads during a session in which the first thread owns a lock on the data object, wherein each of the modification operations corresponds to a respective entry recorded in a log by a respective thread of the plurality of threads; a second thread of the plurality of threads predicts a result of a particular operation requested by the second thread on the data object, wherein said predicting comprises using one or more entries in the log corresponding to one or more of the modification operations that have not yet been applied to the data object; and the second thread performs one or more other operations in a non-blocking manner during the session, wherein the one or more other operations are dependent on the predicted result of the particular operation. - View Dependent Claims (18, 19, 20)
-
Specification