Record lock processing for multiprocessing data system with majority voting
First Claim
1. A process of controlling locking requests for data objects stored in a shared memory means in a multiprocessing system comprising a plurality of processors coupled to said shared memory means, and a central locking control means that is coupled to all of said processors, wherein said processors are able to obtain locks on said objects under the control of said locking control means, to utilize said objects and then to unlock said objects under the control of said locking control means comprising:
- (A) transmitting requested lock entries from said processors to said locking control means that identify the requesting processors and the requested data objects upon which locks are sought by requesting processors,(B) entering into an odd number of at least three lock lists in said locking control means those lock entries that represent requested objects upon which no requesting processor of said plurality of processors is then maintaining a lock,(C) entering into an odd number of at least three queue lists, wherein said queue lists are equal in number to the number of said lock lists and each of said queue lists is associated with one of said lock lists those lock entries that represent requested objects upon which one of said processors is then maintaining a lock,(D) granting locks on the objects represented by lock entries in said lock lists, according to the following procedure of steps (1) and (2);
(1) comparing said lock entries in said lock lists to determine if a majority of said lock entries in said lock lists that are associated with a requested object match, and(2) granting a lock on a requested object for a requesting processor for which a majority of said lock entries do match,(E) obtaining a requested object for a requesting processor from said shared memory when a lock is granted on said requested object for said requesting processor,(F) utilizing said requested object upon which a lock has been obtained in said requesting processor,(G) unlocking said requested object after said requested object has been utilized in said requesting processor,(H) removing a lock entry for requested object from a lock list after said requested object is unlocked, and(I) moving lock entries for a requested object from said queue lists into the associated lock lists when no corresponding lock entries exist in said associated lock lists for said requested object.
4 Assignments
0 Petitions
Accused Products
Abstract
A record lock processor provides a common facility for control of the locking and unlocking of mass storage objects (for example, records, files, pages or any other logical entity) that is shared by a number of loosely-coupled data processors. The terms "record" or "records" wherever they are used in this document are intended to refer to all such objects, including records, files, pages or any other logical grouping or entity into which the mass storage may be portioned. Each of the data processors has access to all of the shared mass storage. Three Lock Modules all receive the same requests and majority voting techniques are used to determine the result. A fourth lock module is included as a Hot Spare Module. A Maintenance Module receives the same requests as the voting Lock Modules and, therefore, it is able to interpret results on-line based on user requests. Programmable Channel Interfaces provide the operational interface to the host processors. The Lock Modules are also programmable, and they hold lock and Queued Lock Requests and execute locking and unlocking algorithms in response thereto.
168 Citations
4 Claims
-
1. A process of controlling locking requests for data objects stored in a shared memory means in a multiprocessing system comprising a plurality of processors coupled to said shared memory means, and a central locking control means that is coupled to all of said processors, wherein said processors are able to obtain locks on said objects under the control of said locking control means, to utilize said objects and then to unlock said objects under the control of said locking control means comprising:
-
(A) transmitting requested lock entries from said processors to said locking control means that identify the requesting processors and the requested data objects upon which locks are sought by requesting processors, (B) entering into an odd number of at least three lock lists in said locking control means those lock entries that represent requested objects upon which no requesting processor of said plurality of processors is then maintaining a lock, (C) entering into an odd number of at least three queue lists, wherein said queue lists are equal in number to the number of said lock lists and each of said queue lists is associated with one of said lock lists those lock entries that represent requested objects upon which one of said processors is then maintaining a lock, (D) granting locks on the objects represented by lock entries in said lock lists, according to the following procedure of steps (1) and (2); (1) comparing said lock entries in said lock lists to determine if a majority of said lock entries in said lock lists that are associated with a requested object match, and (2) granting a lock on a requested object for a requesting processor for which a majority of said lock entries do match, (E) obtaining a requested object for a requesting processor from said shared memory when a lock is granted on said requested object for said requesting processor, (F) utilizing said requested object upon which a lock has been obtained in said requesting processor, (G) unlocking said requested object after said requested object has been utilized in said requesting processor, (H) removing a lock entry for requested object from a lock list after said requested object is unlocked, and (I) moving lock entries for a requested object from said queue lists into the associated lock lists when no corresponding lock entries exist in said associated lock lists for said requested object. - View Dependent Claims (2, 3, 4)
-
Specification