Controlling access of concurrent users of computer resources in a distributed system using an improved semaphore counting approach
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-015/16
G06F-017/00
출원번호
UP-0960376
(2007-12-19)
등록번호
US-7743146
(2010-07-12)
발명자
/ 주소
Sadjadi, Shahrokh
출원인 / 주소
Cisco Technology, Inc.
대리인 / 주소
Hickman Palermo Truong & Becker LLP
인용정보
피인용 횟수 :
1인용 특허 :
66
초록▼
A method of controlling concurrent users of a distributed resource on a network is disclosed. In one aspect, there are one or more local lock managers executing on corresponding hosts and cooperating as a distributed lock manager. The resource is limited to a maximum number of concurrent users. A us
A method of controlling concurrent users of a distributed resource on a network is disclosed. In one aspect, there are one or more local lock managers executing on corresponding hosts and cooperating as a distributed lock manager. The resource is limited to a maximum number of concurrent users. A user identification for each user is associated with one host. In response to a request associated with a particular user associated with a first host, a lock is requested from a first local lock manager process executing on the first host. A related method of handling a request for a count-limited resource includes receiving a request from a client process for the computer resource. If it is determined that the request exceeds a maximum count for the resource, then it is determined whether a current time is within a retry time period of the client's first request. If it is determined the current time is within the retry time period, then it is automatically determined again whether the request exceeds the maximum count for the resource. If it is determined that the request does not exceed the maximum count, then the resource is provided to the client process.
대표청구항▼
What is claimed is: 1. An apparatus for controlling use by concurrent users of a distributed resource on a network, wherein use of the distributed resource is limited to a specified maximum number of concurrent users, the apparatus comprising: a first host comprising logic encoded in one or more ta
What is claimed is: 1. An apparatus for controlling use by concurrent users of a distributed resource on a network, wherein use of the distributed resource is limited to a specified maximum number of concurrent users, the apparatus comprising: a first host comprising logic encoded in one or more tangible medium for execution; wherein the first host is one of a plurality of hosts that are operable to communicatively connect to the network that contains the distributed resource; wherein the logic when executed is operable to: provide a local lock manager process that executes on the first host; associate a user identification for each user of a first set of the concurrent users with the first host; and respond to a first request for the distributed resource associated with a first user having a first user identification associated with the first host by requesting a lock from the local lock manager process; wherein the local lock manager process may grant a lock on the same resource as another local lock manager process executing on another host of the plurality of hosts at any time when a number of outstanding locks granted on the same resource is less than the specified maximum number of concurrent users. 2. The apparatus of claim 1, wherein the logic is further operable to: respond to a second request for the distributed resource associated with a second user having a second user identification associated with a second host of the plurality of hosts by requesting a lock from a second local lock manager process that executes on the second host; wherein the second local lock manager process may grant a lock on the same resource as another local lock manager process executing on another host of the plurality of hosts at any time when the number of outstanding locks granted on the same resource is less than the specified maximum number of concurrent users. 3. The apparatus of claim 1, wherein the logic is operable to associate the first user with the first host based on information indicating that the first user signs onto the network most frequently at a terminal node of the network that uses fewer intervening network devices to pass messages to the first host than to any other host of the plurality of hosts. 4. The apparatus of claim 1, wherein the logic is operable to associate the first user with the first host based on information indicating that the first user signs onto the network most frequently at a terminal node of the network that is geographically closer to the first host than to any other of the plurality of hosts. 5. The apparatus of claim 1, wherein: the local lock manager process comprises a lock data structure associated with the distributed resource and the lock data structure includes a local resource maximum field; and the logic is further operable to generate and store a value in the local resource maximum field such that a summation over values in the local resource maximum fields maintained by a plurality of local lock manager processes, which respectively execute on the plurality of hosts, does not exceed the maximum number of concurrent users. 6. The apparatus of claim 5, wherein a particular value in the local resource maximum field maintained by the local lock manager process is based on a number of users associated with the first host. 7. The apparatus of claim 5, wherein the logic is further operable to: determine whether a number of outstanding locks granted by the local lock manager process is less than a particular value stored in the local resource maximum field; and generate and return a lock object associated with the lock when the number of outstanding locks is less than the particular value. 8. The apparatus of claim 1, wherein a copy of the distributed resource resides on a particular host of the plurality of hosts. 9. The apparatus of claim 1, wherein a copy of the distributed resource resides on a computing device that is not among the plurality of hosts. 10. An apparatus controlling concurrent users of a distributed resource on a network, wherein the distributed resource is limited to a maximum number of concurrent users, the apparatus comprising: one or more network interfaces that are operable to communicatively connect to the network that contains the distributed resource; and logic encoded in one or more tangible medium for execution and when executed operable to: receive a request for the distributed resource from a client process for a user having a user identification; determine a home location associated with the user identification, the home location indicating a unique host among a plurality of hosts that execute a corresponding plurality of local lock manager processes of a distributed lock manager process; wherein each of the plurality of local lock manager processes may concurrently grant a lock on the same resource; send a request for a lock object for the distributed resource to a first local lock manager process of the plurality of local lock manager processes, the request including the home location; receive the lock object for the distributed resource from a second local lock manager process executing on the unique host when a number of outstanding locks granted by the second local lock manager process is less than a value of a local resource maximum defined for the second local lock manager process; and provide the client process access to the distributed resource only in response to receiving the lock object. 11. The apparatus of claim 10, wherein a first host on which the first local lock manager process executes is different from the unique host on which the second local lock manager process executes. 12. The apparatus of claim 10, wherein a first host on which the first local lock manager process is executing is in a local network with a computing device on which the client process is executing. 13. The apparatus of claim 10, wherein the logic is further operable to: determine whether the request received from the client process sets a retry time period; and when the request received from the client process sets the retry time period, automatically resend within the retry time period the request for the lock object to the first local lock manager process. 14. The apparatus of claim 13, wherein: each local lock manager process of the distributed lock manager process is configured to store a corresponding local maximum number of users for the distributed resource in a lock data structure associated with said each local lock manager process; and an aggregate of local maximum numbers in lock data structures associated with all lock manager processes in the distributed lock manager process for the distributed resource is no greater than the maximum number of concurrent users to which the distributed resource is limited. 15. An apparatus controlling concurrent users of a distributed resource on a network, wherein the distributed resource is limited to a maximum number of concurrent users, the apparatus comprising: one or more network interfaces that are operable to communicatively connect to the network that contains the distributed resource; and logic encoded in one or more tangible medium for execution and when executed operable to: generate a value for a local resource maximum stored on each host of a plurality of hosts such that a summation over the plurality of hosts of the value for the local resource maximum yields an aggregate value that does not exceed the maximum number of concurrent users; determine whether to increase a first value in a first resource maximum stored on a first host of the plurality of hosts; when the first value in the first resource maximum is to be increased, then: decrease by a particular amount a second value in a second resource maximum stored on a second host of the plurality of hosts, and increase by the particular amount the first value in the first resource maximum stored on the first host; and grant a lock for the distributed resource when a number of outstanding locks granted by a lock manager process executing on the first host is less than the value of the local resource maximum stored on the first host. 16. The apparatus of claim 15, wherein the logic operable to determine whether to increase the first value is further operable to determine the time of day and the geographic location served by the first host. 17. The apparatus of claim 15, wherein the logic operable to determine whether to increase the first value is further operable to determine whether a difference between the number of outstanding locks granted and the first value is less than a first predetermined threshold. 18. The apparatus of claim 15, wherein when the first value in the first resource maximum is to be increased, the logic is further operable to determine whether to decrease the second value based on a whether a difference between the number of outstanding locks granted and the second value is greater than a second predetermined threshold. 19. The apparatus of claim 18, wherein the particular amount is based on the second predetermined threshold. 20. The apparatus of claim 19, wherein the particular amount is no greater than the second predetermined threshold.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (66)
Wilson Wai Shun Chan, Anticipatory lock mode conversions in a lock management system.
Johnson Richard A. ; Shah Dhaval N. ; Bosteder Dalen D., Apparatus and method for performing traffic redirection in a distributed system using a portion metric.
Greenspan Steven Jay ; Scalzi Casper Anthony ; Plambeck Kenneth Ernest, Blocking symbol control in a computer system to serialize accessing a data resource by simultaneous processor requests.
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.
Lomet David B. (Westford MA) Green Russell J. (Edinburgh GB6), Concurrency-control method and apparatus in a database management system utilizing key-valued locking.
Koseki, Michihiko; Yokoyama, Mamoru; Sumi, Masashi; Yamaguchi, Satoru; Taniwaki, Sadayoshi; Hamanaka, Seishiro, Data processing system with mechanism for restoring file systems based on transaction logs.
Eshel, Marc M.; Hartman, Carol D.; Schmuck, Frank B.; Wyllie, James C., Dynamically switching between different types of concurrency control techniques to provide an adaptive access strategy for a parallel file system.
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.
Steven R. Soltis ; Matthew T. O'Keefe ; Thomas M. Ruwart ; Gerald A. Houlder ; James A. Coomes ; Michael H. Miller ; Edward A. Soltis ; Raymond W. Gilson ; Kenneth W. Preslan, Global file system and data storage device locks.
Brealey Christopher Lawrence,CAX ; Johnston Jeffrey Grant,CAX ; Klicnik Vladimir,CAX ; Lauzon David Martin,CAX ; Loi Lok Tin,CAX ; Seelemann ; II Dirk Alexander,CAX, Locking tool data objects in a framework environment.
Kavanagh Thomas S. ; Beall Christopher W. ; Heiny William C. ; Motycka John D. ; Pendleton Samuel S. ; Terpening Brooke E. ; Traut Kenneth A., Method and apparatus for concurrency in an object oriented database using lock inheritance based on class objects.
Cummings Christopher R., Method and system for allowing a single-user application executing in a multi-user environment to create objects having both user-global and system global visibility.
Crus Richard A. (San Jose CA) Haderle Donald J. (Los Gatos CA) Herron Howard W. (San Jose CA), Method for managing lock escalation 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.
Strickland Jimmy P. (Saratoga CA) Kapulka Kenneth M. (San Jose CA), Method for updating a block using record-level locks by committing the update if the block has not been updated by anoth.
Greenspan Steven Jay ; Plambeck Kenneth Ernest ; Scalzi Casper Anthony, Method utilizing a set of blocking-symbol resource-manipulation instructions for protecting the integrity of data in noncontiguous data objects of resources in a shared memory of a multiple processor.
Devarakonda Murthy V. (Ossining NY) Kish William A. (Millerton NY) Mohindra Ajay (Tarrytown NY) Zlotek Anthony J. (Pleasant Valley NY), Simultaneous updates to the modification time attribute of a shared file in a cluster having a server and client nodes.
Escola Dennis R. (Gilroy CA) Gerdt Steven D. (San Jose CA) Harding Barrie N. (San Jose CA) Hunter Paul W. (San Jose CA) Shipman ; Jr. Lloyd R. (San Jose CA), Storage subsystem having a modifiable key-lock.
Goldszmidt,Moises; Sabata,Bikash; Palma,Derek; Raha,Amitava, System and method for modeling information system capacity and accepting sessions in an information system.
Bartfai Robert F. (West Shokan NY) Lubart Barry P. (Hurley NY) Thomas Julian (Lagrange NY), System and method for preventing deadlock in multiprocessor multiple resource instructions.
Brendel Juergen ; Kring Charles J. ; Liu Zaide ; Marino Christopher C., World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-n.
Huras, Matthew A.; Zheng, Roger L.; Sachedina, Aamer; Finnie, James L.; Romanufa, Keriley K.; Xue, Xun; Buckler, Andrew D.; Palmer, Stewart L., Improving data availability during failure detection and recovery processing in a shared resource system.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.