← Back to Patent Explorer
US5339427A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for distributed locking of shared data, employing a central coupling facility

Assignee: International Business Machines Corp
•
Filing: 1992-03-30
•
Granted: 1994-08-16
•
Expires: 2012-03-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A shared coupling facility contains system lock management (SLM) means for supporting a distributed locking protocol used by a plurality of sharing lock managers each executing on a processor having access to the shared memory and to any other processors in the processor complex. A request to lock a resource shared among the lock managers is first checked against a local hash table and then, if necessary, forwarded to the system lock management means in the shared memory for synchronous or asynchronous processing. List structures are maintained in the shared coupling facility to support the protocol, and are used by the system lock management means to record data recovery status. The sharing lock managers interact with the SLM means to control/manage lock contention, waiter queueing, and compatibility processing.

Inventors

  • 👤 David A. Elko
  • 👤 John F. Isenberg, Jr.
  • 👤 Brian B. Moore
  • 👤 Jimmy P. Strickland
  • 👤 Michael D. Swanson
  • 👤 George W. Wang

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 22:17
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/52

Claims Analysis

Total Claims: 21
Claim 1
Independent Claim 301 words
A locking apparatus for managing access to shared data by a plurality of transactions, said access to said shared data controlled by two or more data managers executing in a processing complex comprising one or more processors, said shared data comprising shared resources, each of said processors coupled to all others of said processors and to said shared data, said apparatus comprising: a) a plurality of lock managers (LM's) each executing on one of said processors, each of the LM's responsive to a serialization request, by an associated one of said two or more data managers, to serialize an access attempt for one of said shared resources, each of said LM's comprising: i) a tailored lock manager (TLM) means for formulating a locking request for said shared resource in response to said serialization request; ii) a system lock manager (SLM) means for providing local and first global locking services, responsive to said locking request, said SLM means comprising local status indication means and distributed contention resolution means, said local status indication means comprising: a local hash table means for indicating lock ownership state so that said locking request can be granted without communication with others of said one or more processors, or with a structured external storage facility, if said one of said shared resources is indicated as being owned in said requested state; said distributed contention resolution means comprising a global table means; b) a structured external storage facility (SES) connected to each SLM, said SES comprising a SES lock manager (SESLM) means for providing second global locking services when required for said locking request, said SESLM means comprising global lock table means for global indication of lock ownership state of said shared resource, and further comprising list means for recording modify information for recovering portions of said shared data.
Claim 2
Dependent Claim 301 words
A locking apparatus for managing access to shared data by a plurality of transactions, said access to said shared data controlled by two or more data managers executing in a processing complex comprising one or more processors, said shared data comprising shared resources, each of said processors coupled to all others of said processors and to said shared data, said apparatus comprising: a) a plurality of lock managers (LM's) each executing on one of said processors, each of the LM's responsive to a serialization request, by an associated one of said two or more data managers, to serialize an access attempt for one of said shared resources, each of said LM's comprising: i) a tailored lock manager (TLM) means for formulating a locking request for said shared resource in response to said serialization request; ii) a system lock manager (SLM) means for providing local and first global locking services, responsive to said locking request, said SLM means comprising local status indication means and distributed contention resolution means, said local status indication means comprising: a local hash table means for indicating lock ownership state so that said locking request can be granted without communication with others of said one or more processors, or with a structured external storage facility, if said one of said shared resources is indicated as being owned in said requested state; said distributed contention resolution means comprising a global table means; b) a structured external storage facility (SES) connected to each SLM, said SES comprising a SES lock manager (SESLM) means for providing second global locking services when required for said locking request, said SESLM means comprising global lock table means for global indication of lock ownership state of said shared resource, and further comprising list means for recording modify information for recovering portions of said shared data.
Claim 3
Dependent Claim 63 words
The apparatus of claim 1 in which said local hash table means comprises a hash table having one or more entries, each of said entries having a null value to indicate that no associated locks are locally held, and having a pointer value, linking said each of said entries to a queue of one or more lock names associated with locally held locks.
Claim 4
Dependent Claim 62 words
The apparatus of claim 1 in which said global table means comprises a hash table having one or more entries, each of said entries having a null value to indicate that no associated locks are globally held, and having a pointer value, linking said each of said entries to a queue of one or more lock names associated with globally held locks.
Claim 5
Dependent Claim 25 words
The apparatus of claim 1 in which said TLM means further comprises contention means for managing lock request contention according to a lock compatibility matrix.
Claim 6
Dependent Claim 33 words
The apparatus of claim 4 in which said contention means comprises a contention exit for determining a necessary action according to said compatability matrix, and a notify exit for performing said necessary action.
Claim 7
Dependent Claim 14 words
The apparatus of claim 5 in which said necessary action is an unlock action.
Claim 8
Dependent Claim 50 words
The apparatus of claim 1 in which said locking request is granted by said SESLM, without communication with others of said one or more processors than a requesting one of said processors, when said global lock table means indicates that no contention exists for said one of said shared resources.
Claim 9
Dependent Claim 76 words
The apparatus of claim 7 in which said global lock table means comprises one or more global lock table (GLT) entries, each of said GLT entries comprising a global lock manager (GLM) portion and a local lock manager (LLM) portion, said GLM portion indicating whether an associated lock is globally owned by an associated global owning user, said LLM portion indication whether the associated lock is locally owned by one or more associated local owning users.
Claim 10
Dependent Claim 78 words
The apparatus of claim 7 in which said list means comprises a list set comprising one or more lists, each of said one or more lists located by an associated user ID (UID) and containing a null value if no associated exclusive locks are held, or containing a pointer value linking said pointer value to a queue of one or more modify lock names, each of said one or more modify lock name identifying associated exclusively held locks.
Claim 11
Independent Claim 289 words
A method for locking data distributed in a processing complex, said processing complex comprising: shared data comprising shared resources; one or more processors coupled to all others of said processors and to said shared data: and two or more data managers each controlling access to said shared data for one or more transactions; said method comprising the steps of: a) one of said data managers issuing a lock request for a shared resource having a shared resource name, triggered by a request by a requesting transaction for said shared data, and transmitting said lock request to a tailored lock manager (TLM), said lock request comprising a requested ownership state and said shared resource name; b) said TLM using a hashing algorithm to convert said lock request to a request to lock a hash table entry, and transmitting a converted lock request to a system lock manager (SLM); c) said SLM checking said converted lock request against an entry in a local hash table in a local one of said one or more processors for local ownership of said entry with said requested ownership state; d) if said step of checking indicated local ownership with said requested ownership state, setting an indication of said requested ownership state of said shared resource and granting said lock request; e) if said step of checking did not indicate local ownership with said requested ownership state, communicating a message comprising said lock request to a central coupling facility, said central coupling facility responding to said message by: i) indicating that said lock request may be granted if a control structure in said central coupling facility so indicates; ii) indicating that lock contention exists if said control structure in said central coupling facility so indicates.
Claim 12
Independent Claim 289 words
A method for locking data distributed in a processing complex, said processing complex comprising: shared data comprising shared resources; one or more processors coupled to all others of said processors and to said shared data: and two or more data managers each controlling access to said shared data for one or more transactions; said method comprising the steps of: a) one of said data managers issuing a lock request for a shared resource having a shared resource name, triggered by a request by a requesting transaction for said shared data, and transmitting said lock request to a tailored lock manager (TLM), said lock request comprising a requested ownership state and said shared resource name; b) said TLM using a hashing algorithm to convert said lock request to a request to lock a hash table entry, and transmitting a converted lock request to a system lock manager (SLM); c) said SLM checking said converted lock request against an entry in a local hash table in a local one of said one or more processors for local ownership of said entry with said requested ownership state; d) if said step of checking indicated local ownership with said requested ownership state, setting an indication of said requested ownership state of said shared resource and granting said lock request; e) if said step of checking did not indicate local ownership with said requested ownership state, communicating a message comprising said lock request to a central coupling facility, said central coupling facility responding to said message by: i) indicating that said lock request may be granted if a control structure in said central coupling facility so indicates; ii) indicating that lock contention exists if said control structure in said central coupling facility so indicates.
Claim 13
Dependent Claim 43 words
The method of claim 10 in which said setting of said indication of ownership comprises the step of chaining a control block comprising said shared resource name to said entry in said local hash table, if said requested ownership state is exclusive access.
Claim 14
Dependent Claim 49 words
The method of claim 10 in which said step of indicating that said lock request may be granted further comprises the step of chaining a control block comprising said shared resource name to said control structure in said central coupling facility if said requested ownership state is exclusive access.
Claim 15
Dependent Claim 81 words
The method of claim 10 in which, when said central coupling facility responds to said message by indicating that lock contention exists, a lock escalation process is performed in response, said lock escalation process comprising the steps of: a) sending a signal to a targeted SLM requesting global management of said shared resource; b) said targeted SLM obtaining resource information from one or more other SLM instances, and evaluating said resource information to determine if said lock request can be granted.
Claim 16
Dependent Claim 32 words
The method of claim 13 in which said message further comprises an indication of whether said requesting transaction will be suspended, or will establish a completion exit, if said lock contention exists.
Claim 17
Independent Claim 177 words
A method of recovering from a failure involving a first lock manager function associated with a first data manager function in a processing complex, said processing complex comprising: shared data comprising shared resources; one or more processors coupled to all others of said processors and to said shared data; and two or more data managers, belonging to a sharing group, each controlling access to said shared data for one or more transactions; said method comprising the steps of: a) storing record data comprising a first resource name for a first resource owned exclusively by said first lock manger in a control structure in a central coupling facility before said failure; b ) detecting said failure; c) notifying a second lock manager function, belonging to said sharing group, of said failure; d) said second lock manager function retrieving said stored record data from said central coupling facility and indicating the setting of a local RETAIN lock for said first resource; e) indicating release of ownership of said first resource, by said first lock manager, in said control structure.
Claim 18
Independent Claim 177 words
A method of recovering from a failure involving a first lock manager function associated with a first data manager function in a processing complex, said processing complex comprising: shared data comprising shared resources; one or more processors coupled to all others of said processors and to said shared data; and two or more data managers, belonging to a sharing group, each controlling access to said shared data for one or more transactions; said method comprising the steps of: a) storing record data comprising a first resource name for a first resource owned exclusively by said first lock manger in a control structure in a central coupling facility before said failure; b ) detecting said failure; c) notifying a second lock manager function, belonging to said sharing group, of said failure; d) said second lock manager function retrieving said stored record data from said central coupling facility and indicating the setting of a local RETAIN lock for said first resource; e) indicating release of ownership of said first resource, by said first lock manager, in said control structure.
Claim 19
Dependent Claim 311 words
A locking apparatus for managing access to shared data by a plurality of transactions said access to said shared data controlled by two or more data managers executing in a processing complex comprising one or more processors, said shared data comprising shared resources, each of said processors coupled to all others of said processors and to said shared data, said apparatus comprising: a) a plurality of lock managers (LM's) each executing on one of said processors, each of the LM's responsive to a serialization request, by an associated one of said two or more data managers, to serialize an access attempt for one of said shared resources, each of said LM's comprising: i) a tailored lock manager (TLM) means for formulating a locking request for said shared resource in response to said serialization request; ii) a system lock manager (SLM) means for providing local and first global locking services, responsive to said locking request, said SLM comprising local hash table means for local indication of status for said shared resource, and global table means for distributed contention resolution; b) a structured external storage facility (SES) connected to each SLM, said SES comprising a SES lock manager (SESLM) means for providing second global locking services, said SESLM means comprising global lock table means for global indication of status of said shared resource, and further comprising list means for recording modify information for recovering portions of said shared data; c) a wait indicator having a first value if said associated one of said two or more data managers will wait for delayed completion of said serialization request, and having a second value if said associated one of said two or more data managers will not wait for delayed completion of said serialization request; d) means for asynchronous notification of delayed completion of said serialization request if said wait indicator has said second value.
Claim 20
Dependent Claim 311 words
A locking apparatus for managing access to shared data by a plurality of transactions said access to said shared data controlled by two or more data managers executing in a processing complex comprising one or more processors, said shared data comprising shared resources, each of said processors coupled to all others of said processors and to said shared data, said apparatus comprising: a) a plurality of lock managers (LM's) each executing on one of said processors, each of the LM's responsive to a serialization request, by an associated one of said two or more data managers, to serialize an access attempt for one of said shared resources, each of said LM's comprising: i) a tailored lock manager (TLM) means for formulating a locking request for said shared resource in response to said serialization request; ii) a system lock manager (SLM) means for providing local and first global locking services, responsive to said locking request, said SLM comprising local hash table means for local indication of status for said shared resource, and global table means for distributed contention resolution; b) a structured external storage facility (SES) connected to each SLM, said SES comprising a SES lock manager (SESLM) means for providing second global locking services, said SESLM means comprising global lock table means for global indication of status of said shared resource, and further comprising list means for recording modify information for recovering portions of said shared data; c) a wait indicator having a first value if said associated one of said two or more data managers will wait for delayed completion of said serialization request, and having a second value if said associated one of said two or more data managers will not wait for delayed completion of said serialization request; d) means for asynchronous notification of delayed completion of said serialization request if said wait indicator has said second value.
Claim 21
Dependent Claim 37 words
The apparatus of claim 16 in which said means for asynchronous notification of delayed completion comprises a completion exit, said completion exit being activated at completion of said serialization request, and being passed a completion status indicator.

References Cited (Backward Citations)

US4402046A Cited
US4399504A Cited
US4480304A Cited
US4604694A Cited
US4805106A Cited
US4716528A Cited
US4984153A Cited
US5230070A Cited
US5161227A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-08-15 1998-02-14 1998-08-16 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-08-15 2002-02-14 2002-08-16 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-08-15 2006-02-14 2006-08-16 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag