Last thread lock management for multi-threaded process and distributed data systems
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-015/167
G06F-015/16
G06F-007/00
출원번호
UP-0201844
(2002-07-24)
등록번호
US-7565406
(2009-07-29)
발명자
/ 주소
E, Sandhya
Kumar, Ajay
Susarla, Hanumantha Rao
출원인 / 주소
Sun Microsystems, Inc.
대리인 / 주소
Kowert, Robert C.
인용정보
피인용 횟수 :
1인용 특허 :
24
초록▼
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
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.
대표청구항▼
What is claimed is: 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 mechanis
What is claimed is: 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. The distributed data system as recited in claim 1, wherein each of the multi-threaded processes is configured such that when the particular thread of the multi-threaded process that requested the lock acquires the lock, the one or more other threads of the multi-threaded process requesting access to the portion of the primary data access the portion of the primary data while the multi-threaded process retains the lock. 3. The distributed data system as recited in claim 2, wherein each of the multi-threaded processes is configured to: increment a count corresponding to the lock for the portion of the primary data in response to a thread of the multi-threaded process requesting access to the portion of the primary data; decrement the count in response to a thread completing access to the locked portion of the primary data; and wherein the last thread is configured to release the lock in response to the count reaching an initial value. 4. The distributed data system as recited in claim 1, wherein each of the multi-threaded processes is configured to initiate a dummy requester upon acquiring the lock to indicate a pending request for access to the portion of the primary data, wherein the multi-threaded process is configured to cancel the dummy requester only in response to receiving a request to release the lock so that the multi-threaded process holds the lock until the multi-threaded process receives a request to release the lock. 5. The distributed data system as recited in claim 1, wherein the plurality of network nodes comprise one or more application servers of a multi-tiered enterprise system. 6. The distributed data system as recited in claim 1, wherein the one of the multi-threaded processes comprises a Java virtual machine. 7. The distributed data system as recited in claim 1, wherein a portion of the primary data stored by the data store represents state information of a client-server session. 8. The distributed data system as recited in claim 1, wherein if a requester for a process holds a lock for a portion of the primary data, the lock mechanism is configured to buffer one or more requests for the lock for that portion of the primary data from one or more other requesters for one or more other processes. 9. The distributed data system as recited in claim 8, wherein in response to the last thread releasing the lock for the portion of the primary data, the lock mechanism is configured to grant the lock for that portion of the primary data to a next buffered requester for that primary data portion. 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. 11. The computing system as recited in claim 10, wherein the multi-threaded process is configured so that when the thread that requested the lock obtains the lock for the portion of the distributed data the one or more other threads access the portion of the distributed data while the multi-threaded process retains the lock. 12. The computing system as recited in claim 11, wherein the multi-threaded process is configured to: increment a count corresponding to the lock for the portion of the distributed data in response to a thread of the multi-threaded process requesting access to the portion of the distributed data; decrement the count in response to a thread of the multi-threaded process completing access to the locked portion of the distributed data; and wherein the last thread is configured to release the lock in response to the count reaching an initial value. 13. The computing system as recited in claim 10, wherein the multi-threaded process is configured to initiate a dummy requester upon acquiring the lock to indicate a pending request for access to the portion of the distributed data, wherein the multi-threaded process is configured to cancel the dummy requester only in response to receiving a request to release the lock so that the multi-threaded process holds the lock until the multi-threaded process receives a request to release the lock. 14. The computing system as recited in claim 10, wherein the memory comprises program instructions executable by the processor to implement an application server for a multi-tiered enterprise system, wherein the multi-threaded process is configured to execute within the application server. 15. The computing system as recited in claim 10, wherein the multi-threaded process comprises a Java virtual machine. 16. The computing system as recited in claim 10, wherein a portion of the distributed data represents state information of a client-server session. 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. 18. The method as recited in claim 17, further comprising the one or more other threads of the multi-threaded process accessing the portion of the distributed data while the multi-threaded process retains the lock. 19. The method as recited in claim 18, further comprising: incrementing a count corresponding to the portion of the distributed data for each thread of the multi-threaded process requesting access to the portion of the distributed data; decrementing the count corresponding to the locked portion of the distributed data for each thread of the multi-threaded process completing access to the locked portion of the distributed data; and the last thread releasing the lock for the multi-threaded process in response to the count reaching an initial value. 20. The method as recited in claim 17, further comprising: the multi-threaded process initiating a dummy requester upon acquiring the lock to indicate a pending request for access to the portion of the distributed data; and if the multi-threaded process is requested to release the lock, the multi-threaded process canceling the dummy requester so that the multi-threaded process holds the lock until the multi-threaded process receives a request to release the lock. 21. The method as recited in claim 17, further comprising another thread of the multi-threaded process releasing the lock for the multi-threaded process when further requests are pending. 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. 23. The computer-accessible storage medium as recited in claim 22, wherein the program instructions are further executable to implement the one or more other threads of the multi-threaded process accessing the portion of the distributed data while the multi-threaded process retains the lock. 24. The computer-accessible storage medium as recited in claim 23, wherein the program instructions are fuarther executable to implement: incrementing a count corresponding to the portion of the distributed data for each thread of the multi-threaded process requesting access to the portion of the distributed data; decrementing the count corresponding to the locked portion of the distributed data for each thread of the multi-threaded process completing access to the locked portion of the distributed data; and the last thread releasing the lock for the multi-threaded process in response to the count reaching an initial value. 25. The computer-accessible storage medium as recited in claim 22, wherein the program instructions are further executable to implement: the multi-threaded process initiating a dummy requester upon acquiring the lock to indicate a pending request for access to the portion of the distributed data; and if the multi-threaded process is requested to release the lock, the multi-threaded process canceling the dummy requester so that the multi-threaded process holds the lock until the multi-threaded process receives a request to release the lock. 26. The computer-accessible storage medium as recited in claim 22, wherein the program instructions are further executable to implement another thread of the multi-threaded process releasing the lock for the process when further requests are pending.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (24)
Baird Robert (San Jose CA) Eisenberger George (White Plains NY) Lett Alexander S. (Mahopac NY) Myers James J. (San Francisco CA) Tetzlaff William H. (Mount Kisco NY) Unger Jay G. (Mohegan Lake NY), Concurrency management using version identification of shared data as a supplement to use of locks.
Higuchi Tatsuo,JPX ; Tarui Toshiaki,JPX ; Kitai Katsuyoshi,JPX ; Takeuchi Shigeo,JPX ; Toba Tatsuru,JPX ; Asaie Machiko,JPX ; Inagami Yasuhiro,JPX, Exclusive control method with each node controlling issue of an exclusive use request to a shared resource, a computer system therefor and a computer system with a circuit for detecting writing of an.
Xu Yikang ; Vahalia Uresh K. ; Jiang Xiaoye ; Gupta Uday ; Tzelnic Percy, File server system using file system storage, data movers, and an exchange of meta data among data movers for file locking and direct access to shared file systems.
Sipple Ralph E. (Shoreview MN) Jordan John R. (St. Paul MN) vonArx Anthony P. (New Brighton MN), Locking control with validity status indication for a multi-host processor system that utilizes a record lock processor.
Obermarck Ronald L. (Los Altos CA) Strickland Jimmy P. (Saratoga CA) Watts Vern L. (Los Gatos CA), Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment.
Mohan Chandrasekaran (San Jose CA) Narang Inderpal S. (Saratoga CA), Method for non-hierarchical lock management in a multi-system shared data environment.
Schmuck Frank B. ; Zlotek Anthony J. ; Shmueli Boaz,ILX ; Mandler Benjamin,ILX ; Yehudai Zvi Yosef,ILX ; Kish William A., Parallel file system with method using tokens for locking modes.
Sipple Ralph E. (Shoreview MN) Theis Marvin W. (Plymouth MN) Sjolander John O. (Vadnais Heights MN) Jordan John R. (St. Paul MN), Record lock processing for multiprocessing data system with majority voting.
Carter John B. ; Davis Scott H. ; Abraham William ; Frank Steven J. ; Hansen Thomas G. ; Phillips Robert S. ; Dietterich Daniel J. ; Porter David, Shared memory computer networks.
Bender, Daniel Dean; McKinley, Thomas Owen; Mech, Robert Paul; Petrillo, Robert Anthony; Rocheleau, Richard Miles, Weak record locks in database query read processing.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.