Last thread lock management for multi-threaded process and distributed data systems
First Claim
1. A distributed data system, comprising:
- a plurality of network nodes each configured to execute one or more multi-threaded processes comprising a plurality of threads;
a data store configured to store primary data accessible by the multi-threaded processes; and
a lock mechanism coupled to the data store and configured to lock access to portions of the primary data, wherein the lock mechanism is configured to grant a lock to a requester for one of the multi-threaded processes for a primary data portion stored by the data store, wherein the lock mechanism is configured to prevent other processes from accessing the primary data portion while the requester is granted the lock;
wherein each of the multi-threaded processes executing on the plurality of network nodes is configured to have a particular thread of the multi-threaded process request a lock for the portion of the primary data from the lock mechanism, wherein the multi-threaded process is configured to retain the lock while one or more other threads of the multi-threaded process requesting access to the locked portion of primary data access the locked portion of the primary data, and wherein the last thread among the one or more other threads to access the locked portion of primary data is configured to release the lock in response to a determination that no further requests for access to the locked portion of primary data from other threads of the multi-threaded process are pending, wherein said one or more other threads of the multi-threaded process are different than said particular thread of the multi-threaded process.
2 Assignments
0 Petitions
Accused Products
Abstract
A distributed data system may include nodes hosting at least one multi-threaded process operable to access portions of distributed data. A lock mechanism may grant locks to multi-threaded processes for portions of the distributed data. Only a process holding a lock may access a portion corresponding to the lock. Threads of other processes may not access the portion. A process may include one or more threads that may acquire a locks for the distributed data portion on behalf of the process. In one embodiment, the lock mechanism may allow any thread of a process release a lock held by the process. In embodiments, the last thread to access the distributed data portion corresponding to the lock may release the lock in response to no more threads of the process require access to the distributed data portion and/or in response to a request to release the lock.
34 Citations
26 Claims
-
1. A distributed data system, comprising:
-
a plurality of network nodes each configured to execute one or more multi-threaded processes comprising a plurality of threads; a data store configured to store primary data accessible by the multi-threaded processes; and a lock mechanism coupled to the data store and configured to lock access to portions of the primary data, wherein the lock mechanism is configured to grant a lock to a requester for one of the multi-threaded processes for a primary data portion stored by the data store, wherein the lock mechanism is configured to prevent other processes from accessing the primary data portion while the requester is granted the lock; wherein each of the multi-threaded processes executing on the plurality of network nodes is configured to have a particular thread of the multi-threaded process request a lock for the portion of the primary data from the lock mechanism, wherein the multi-threaded process is configured to retain the lock while one or more other threads of the multi-threaded process requesting access to the locked portion of primary data access the locked portion of the primary data, and wherein the last thread among the one or more other threads to access the locked portion of primary data is configured to release the lock in response to a determination that no further requests for access to the locked portion of primary data from other threads of the multi-threaded process are pending, wherein said one or more other threads of the multi-threaded process are different than said particular thread of the multi-threaded process. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computing system, comprising:
-
a processor; memory comprising program instructions executable by the processor to implement; a multi-threaded process comprising a plurality of threads, the multi-threaded process configured to access portions of distributed data stored within a distributed data store accessible to other processes; wherein the multi-threaded process is configured to have a particular thread of the multi-threaded process request a lock for a portion of the distributed data from a lock mechanism of the distributed data store, wherein the multi-threaded process is configured to retain the lock while one or more other threads of the multi-threaded process requesting access to the locked portion of distributed data access the locked portion of the distributed data, and wherein the last thread among the one or more other threads to access the locked portion of distributed data is configured to release the lock in response to a determination that no further requests for access to the locked portion of distributed data from other threads of the multi-threaded process are pending, wherein said one or more other threads of the multi-threaded process are different than said particular thread of the multi-threaded process. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A method, comprising:
-
a particular thread of a multi-threaded process acquiring a lock for a portion of distributed data of a distributed data store from a lock mechanism of the distributed data store, wherein said multi-threaded process comprises a plurality of threads; one or more other threads of the multi-threaded process requesting access to the locked portion of the distributed data while the multi-threaded process retains the lock, wherein said one or more other threads of the multi-threaded process are different than said particular thread of the multi-threaded process; and a last thread of said one or more other threads to request access to the portion of the distributed data releasing the lock in response to a determination that no further requests for access to the locked portion of distributed data from other threads of the multi-threaded process are pending. - View Dependent Claims (18, 19, 20, 21)
-
-
22. A computer-accessible storage medium, storing program instructions executable to implement:
-
a particular thread of a multi-threaded process acquiring a lock for a portion of distributed data of a distributed data store from a lock mechanism of the distributed data store, wherein said multi-threaded process comprises a plurality of threads; one or more other threads of the multi-threaded process requesting access to the locked portion of the distributed data while the multi-threaded process retains the lock, wherein said one or more other threads of the multi-threaded process are different than said particular thread of the multi-threaded process; and a last thread of said one or more other threads to request access to the portion of the distributed data releasing the lock in response to a determination that no further requests for access to the locked portion of distributed data from other threads of the multi-threaded process are pending. - View Dependent Claims (23, 24, 25, 26)
-
Specification