Method of performing parallel cleanup of segments of a lock...

Data processing: database and file management or data structures – Database design – Data structure types

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C709S241000, C711S150000, C710S200000

Reexamination Certificate

active

06178421

ABSTRACT:

TECHNICAL FIELD
This invention relates, in general, to parallel processing and, in particular, to performing parallel cleanup of segments of a lock structure in order to optimize the cleanup process.
CROSS REFERENCE TO RELATED APPLICATIONS
This application contains subject matter which is related to the subject matter of the following applications, each of which is assigned to the same assignee as this application and filed on the same day as this application. Each of the below listed applications is hereby incorporated herein by reference in its entirety:
“SYSTEM OF PERFORMING PARALLEL CLEANUP OF SEGMENTS OF A LOCK STRUCTURE,” by Dahlen et al., Ser. No. 09/092,420; and
“PERFORMING PARALLEL CLEANUP OF SEGMENTS OF A LOCK STRUCTURE,” by Dahlen et al., Ser. No. 09/092,360.
BACKGROUND ART
Data processing systems have long used locking mechanisms as a means for ensuring data integrity during, for instance, write and update operations. These locking mechanisms typically include locks, which are used to associate state information with the name of a resource to be locked. The state information indicates accessing privileges (e.g., shared, exclusive), ownership, etc.
One example of a system using locks to ensure data integrity is a Parallel Sysplex™ configuration offered by International Business Machines Corporation. The Parallel Sysplex™ configuration conforms to the S/390® architecture described, for example, in the IBM publication
Enterprise Systems Architecture
/390
Principles of Operation
, SA22-7201-04, June 1997, which is hereby incorporated herein by reference in its entirety.
The IBM Parallel Sysplex configuration includes two or more processors interconnected via a coupling facility to form what is known as a “sysplex” (system complex). The coupling facility contains storage accessible by the processors, performs operations requested by programs in the processors and enables the sharing of data by the processors coupled thereto. The data are stored in storage structures, such as cache structures and/or list structures. In one example, the list structures include locking structures, such as lock tables. The lock tables include the locks used to ensure data integrity during write and update operations.
When a user of a coupling facility lock structure (e.g., a lock table within a list structure) terminates or disconnects while holding locks in the coupling facility, a cleanup process is used to cleanup the locks held by the terminated or disconnected user. This cleanup process is performed by all of the surviving users of the lock structure.
The current process for cleaning up the lock table, by each surviving user, includes using a coupling facility command to search through the lock table entries in ascending order until a lock table entry indicating a lock held by the disconnected or terminated user is found. When such an entry is found, the coupling facility returns the lock table entry number for which cleanup is needed and the contents of that lock table entry. This command may time-out and need to be redriven multiple times. When the command times-out, it returns the lock table entry number of the first lock table entry that has not yet been scanned. When a lock held by the terminated or disconnected user is found, a different coupling facility command is used to free the lock held by the terminated or disconnected user. This procedure continues until the entire lock table has been scanned and cleaned up by each and every surviving user. The process of cleaning up the locks held by the terminated or disconnected user can take a minute or more, since the lock table, typically, contains millions of locks.
While the cleaning up process is being performed, the lock structure is in a quiesced state, such that lock requests against the structure from the surviving users cannot be processed and lock requesters are made to wait. The data protected by the locks is therefore unavailable to the surviving users for the duration of the cleanup. Many customer applications have response time goals for the transactions they process, and these goals may not be achievable because of the long duration of the cleanup process. The customer perception of this is that failure of a user causes a temporary case of sysplex-wide sympathy sickness during which data is not avail able and response time go also are not met.
The above-described cleanup process may result in a significant amount of redundant scanning, because the lock table is scanned by each surviving user to ensure coverage of the cleanup by some user. Furthermore, its one-entry-at-a-time approach to cleanup processing may result in a huge number of coupling facility commands being performed. This is due to the fact that every time a matching lock table entry is returned, two coupling facility commands are performed: one to free the lock that was found to be held by the terminated or disconnected user, and another to restart the scan process starting with the next entry. Thus, the overhead of a large number of coupling facility commands slows the overall cleanup process down significantly.
Based on the foregoing, a need exists for a cleanup process capability that does not require each surviving user to scan the entire lock table. In addition, a cleanup process capability is needed that requires significantly fewer coupling facility accesses. A further need exists for a cleanup capability that reduces the response time impact that is visible to customers and to applications. A yet further need exists for a cleanup capability that enhances system performance.
SUMMARY OF THE INVENTION
The shortcomings of the prior art are overcome and additional advantages are provided through the provision of a method of processing lock structures. The method includes, for instance, partitioning the lock structure into a plurality of segments. The plurality of segments include a plurality of entries, and the plurality of entries include a plurality of locks. The method further includes processing multiple segments of the plurality of segments in parallel.
In one embodiment of the invention, the lock structure is located within a coupling facility and is shared by one or more processors coupled to the coupling facility.
In another embodiment, the partitioning is performed by a command issued on behalf of a user of one of the processors coupled to the coupling facility, and the command is executed within the coupling facility.
In another embodiment of the invention, the processing, for a segment of the multiple segments, includes scanning entries of the segment to determine whether any locks are held by a terminated user of the lock structure, and cleaning up one or more of the locks determined to be held by the terminated user.
In one example, the cleaning up includes setting one or more exclusive locks held for the terminated user to zero, and/or setting one or more shared locks corresponding to the terminated user to zero.
In one embodiment, one command is used to perform the scanning and the cleaning up. In another example, the method includes determining whether the command has timed-out during the scanning or cleaning up. If the command has timed-out and entries of the segment or other segments of the lock structure still need to be cleaned up, the command is redriven.
In another aspect of the invention, a method of processing lock structures is provided. The method includes partitioning a lock structure into a plurality of segments; scanning one or more of the segments to locate at least one lock of the lock structure to be cleaned up, wherein the scanning uses one or more cleanup commands; and cleaning up the at least one lock. The cleaning up is performed by the same one or more cleanup commands that located the at least one lock during the scanning.
In another embodiment, a method of processing lock structures is provided. The method includes scanning one or more segments of a lock structure partitioned into a plurality of segments to determine whether one or more locks of the lock structure is held by a terminated user; and determining wh

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method of performing parallel cleanup of segments of a lock... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method of performing parallel cleanup of segments of a lock..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method of performing parallel cleanup of segments of a lock... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2550192

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.