IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0202312
(2002-07-24)
|
등록번호 |
US-8095657
(2012-01-10)
|
발명자
/ 주소 |
|
출원인 / 주소 |
|
대리인 / 주소 |
|
인용정보 |
피인용 횟수 :
2 인용 특허 :
23 |
초록
▼
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 a first thread to request access to a distributed data portion that may acquire a lock for the distributed data portion on behalf of the process. In one embodiment, the lock mechanism may require only a thread that acquired a lock release the lock on behalf of a process. In embodiments, the first thread 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.
대표청구항
▼
1. A distributed data system, comprising: a plurality of network nodes each configured to execute one or more processes;a data store configured to store primary data accessible by the processes; anda hardware device configured to implement a lock mechanism coupled to the data store and configured to
1. A distributed data system, comprising: a plurality of network nodes each configured to execute one or more processes;a data store configured to store primary data accessible by the processes; anda hardware device configured to implement 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 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 process executing on the plurality of network nodes is configured to have a first thread of the process requesting access to a portion of the primary data request a lock for the portion of the primary data from the lock mechanism, wherein the first thread remains, while one or more other threads of the process access the locked portion of the primary data, to release the lock, and wherein said first thread and said other threads each execute locally on one of said plurality of network nodes. 2. The distributed data system as recited in claim 1, wherein each of the processes is configured so that when its first thread obtains a lock for a primary data portion one or more other threads of the process requesting access to the primary data portion can access the primary data portion while the lock is held for that process. 3. The distributed data system as recited in claim 2, wherein each of the 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 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; andwherein the first thread that acquired the lock is configured to release the lock in response to the corresponding count reaching an initial value. 4. The distributed data system as recited in claim 1, wherein the first thread is configured to release a previously acquired lock when no more threads of that process request access to the primary data portion corresponding to the lock. 5. The distributed data system as recited in claim 1, wherein the lock mechanism is configured to allow only the requester for a lock to release the lock for the corresponding portion of the primary data. 6. The distributed data system as recited in claim 1, wherein the first thread is configured to hold the lock it acquires for its process until that process receives a request to release the lock. 7. The distributed data system as recited in claim 1, wherein the first thread is configured to release the lock it acquired for its process in response to an invalidate request from another thread in its process. 8. 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. 9. The distributed data system as recited in claim 1, wherein the one of the processes comprises a Java virtual machine. 10. 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. 11. 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 from one or more other requesters for one or more other processes. 12. The distributed data system as recited in claim 11, wherein in response to the requester 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. 13. A computing system, comprising: a processor;memory comprising program instructions executable by the processor to implement: a process configured to access portions of distributed data stored within a distributed data store accessible to other processes;wherein the process is configured to have a first thread of the process requesting access to a portion of the distributed data request a lock for one of the portions of the distributed data from a lock mechanism of the distributed data store, wherein the first thread remains, while one or more other threads of the process access the locked portion of the distributed data, to release the lock, and wherein said first thread and said other threads all execute locally on the processor. 14. The computing system as recited in claim 13, wherein the process is configured so that when its first thread obtains a lock for a portion of the distributed data one or more other threads of the process requesting access to the locked portion of the distributed data can access the locked portion of the distributed data while the lock is held for the process. 15. The computing system as recited in claim 14, wherein the process is configured to: increment a count corresponding to a portion of the distributed data in response to a thread of the processes requesting access to the portion of the distributed data;decrement the count in response to a thread of the process completing access to the portion of the distributed data; andwherein the first thread that acquired the lock for the portion of the distributed data is configured to release the lock in response to the corresponding count reaching an initial value. 16. The computing system as recited in claim 13, wherein the first thread is configured to release a previously acquired lock when no more threads of that process request access to the portion of the distributed data corresponding to the lock. 17. The computing system as recited in claim 13, wherein the first thread is configured to hold a previously acquired lock for the process until the process receives a request to release the lock. 18. The computing system as recited in claim 13, wherein the first thread is configured to release a previously acquired lock in response to an invalidate request from another thread of the process. 19. The computing system as recited in claim 13, wherein the memory comprises program instructions executable by the processor to implement an application server for a multi-tiered enterprise system, wherein the process is configured to execute within the application server. 20. The computing system as recited in claim 13, wherein the process comprises a Java virtual machine. 21. The computing system as recited in claim 13, wherein a portion of the distributed data represents state information of a client-server session. 22. A method, comprising: a first thread of a process determining if the process owns a lock for a portion of primary data stored in a distributed data store;in response to determining that the process does not own the lock, the first thread requesting the lock for the portion of the primary data from a lock mechanism of the distributed data store;in response to obtaining the lock, the first thread accessing the locked portion of primary data; andthe first thread remaining, while one or more other threads of the process access the locked portion of the primary data, to release the lock;wherein said first thread and said other threads each execute locally on one of one or more network nodes. 23. The method as recited in claim 22, further comprising one or more other threads of the process accessing the portion of the primary data while the lock is granted to the process. 24. The method as recited in claim 23, further comprising: incrementing a count corresponding to the portion of primary data for each thread of the process requesting access to the portion of primary data;decrementing the count corresponding to the portion of primary data for each thread of the process completing access to the portion of primary data; andthe first thread releasing the lock for the portion of primary data for the process in response to the count reaching an initial value. 25. The method as recited in claim 22, further comprising, if no more threads of the process require access to the locked portion of primary data, the first thread releasing the lock on behalf of the process. 26. The method as recited in claim 22, further comprising the first thread holding the lock until requested to release the lock. 27. The method as recited in claim 22, further comprising: another thread of the process requesting release of the lock for the portion of primary data; andthe first thread releasing the lock for the portion of primary data for the process in response to the other thread's request to release the lock. 28. A non-transitory computer-accessible storage medium, comprising program instructions computer-executable to implement: a first thread of a process determining if the process owns a lock for a portion of primary data stored in a distributed data store;in response to determining that the process does not own the lock, the first thread requesting the lock for the portion of the primary data from a lock mechanism of the distributed data store;in response to obtaining the lock, the first thread accessing the locked portion of primary data; andthe first thread remaining, while one or more other threads of the process access the locked portion of the primary data, to release the lock;wherein said first thread and said other threads each execute locally on one of one or more network nodes. 29. The storage medium as recited in claim 28, wherein the program instructions are further executable to implement one or more other threads of the process accessing the portion of the primary data while the lock is granted to the process. 30. The storage medium as recited in claim 29, wherein the program instructions are further executable to implement: incrementing a count corresponding to the portion of primary data for each thread of the process requesting access to the portion of primary data;decrementing the count corresponding to the portion of primary data for each thread of the process completing access to the portion of primary data; andthe first thread releasing the lock for the portion of primary data for the process in response to the count reaching an initial value. 31. The storage medium as recited in claim 28, wherein the program instructions are further executable to implement, if no more threads of the process require access to the locked portion of primary data, the first thread releasing the lock on behalf of the process. 32. The storage medium as recited in claim 28, wherein the program instructions are further executable to implement the first thread holding the lock until requested to release the lock. 33. The storage medium as recited in claim 28, wherein the program instructions are further executable to implement: another thread of the process requesting release of the lock for the portion of primary data; andthe first thread releasing the lock for the portion of primary data for the process in response to the other thread's request to release the lock.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.