Claims Analysis
Total Claims: 39
Claim 1
Independent Claim
317 words
A method of providing staged object locks in response to the level of lock complexity and system resource limitation in a distributed computer processing system in which a server that operates in accordance with a server environment is connected to a direct access storage device containing data objects, and a plurality of client processes that operate in accordance with respective client environments, at least one of which has access to the data objects, and that generate requests to the server for locks that cover data object portions comprising respective data objects in their entirety or portions of the data objects, the method comprising the steps of: receiving a lock request at the server from a first client process for an object lock in one of the data objects; determining if any other client process has requested an object lock in the same data object; responding to the lock request of the first client process if it is determined that no other client process has requested a lock for the same data object by granting the requested lock to the first client process and recording the lock locally in the client environment of the first client process; responding to the lock request of the first client process, if it is determined that at least a second client process has locally recorded in its environment a lock for the same data object, by migrating any locks recorded in the respective client environments for an object portion within the same data object to the server environment, wherein the migrating locks for either the respective data objects in their entirety or portions of the data objects is effectuated even when client and server lock managers are different, placing all lock requests for portions of the same data object in contention in the server, and determining a queue order in which the requested locks will be granted to the requesting client processes.
Claim 2
Independent Claim
317 words
A method of providing staged object locks in response to the level of lock complexity and system resource limitation in a distributed computer processing system in which a server that operates in accordance with a server environment is connected to a direct access storage device containing data objects, and a plurality of client processes that operate in accordance with respective client environments, at least one of which has access to the data objects, and that generate requests to the server for locks that cover data object portions comprising respective data objects in their entirety or portions of the data objects, the method comprising the steps of: receiving a lock request at the server from a first client process for an object lock in one of the data objects; determining if any other client process has requested an object lock in the same data object; responding to the lock request of the first client process if it is determined that no other client process has requested a lock for the same data object by granting the requested lock to the first client process and recording the lock locally in the client environment of the first client process; responding to the lock request of the first client process, if it is determined that at least a second client process has locally recorded in its environment a lock for the same data object, by migrating any locks recorded in the respective client environments for an object portion within the same data object to the server environment, wherein the migrating locks for either the respective data objects in their entirety or portions of the data objects is effectuated even when client and server lock managers are different, placing all lock requests for portions of the same data object in contention in the server, and determining a queue order in which the requested locks will be granted to the requesting client processes.
Claim 3
Dependent Claim
54 words
A method as defined in claim 1, wherein the step of recording the lock locally in the client environment of the first client process includes adding an entry to a client lock log in the client environment containing row entries that contain sufficient information to reconstruct the lock request of the first client process.
Claim 4
Dependent Claim
72 words
A method as defined in claim 2, wherein the lock request of the first client process includes data that specifies whether the client process desires recording of locks in the requesting client environment, and the step of recording the lock in the client environment of the first client process is executed only if the received lock request specifies that the first client process desires recording of locks locally in the client environment.
Claim 5
Dependent Claim
97 words
A method as defined in claim 1, further including the steps of: determining if any other client process in the client environment of the first client process has requested an object lock for an overlapping portion of a data object for which a lock is already maintained in the client environment; responding to the lock request by placing all lock requests and locally maintained locks in the client environment for the same data object in contention in the client environment and determining a queue order in which the locks will be granted to the requesting client processes.
Claim 6
Dependent Claim
97 words
A method as defined in claim 4, wherein the step of recording the lock locally in the client environment of the first client process includes the steps of: adding an entry to a client lock log in the client environment that contains row entries having sufficient information to reconstruct the lock request; and storing a client lock structure in the client environment such that the client lock structure identifies the first client process as holding the granted lock, the data object for which the lock has been granted, and the object portion covered by the corresponding lock.
Claim 7
Dependent Claim
113 words
A method as defined in claim 5, wherein the step of migrating all locks for the same data object recorded in the respective client environments to the server environment includes the steps of: determining sufficient information to reconstruct the original lock request from the client lock log; generating the original lock request in accordance with the reconstruction information from the client lock log and sending it to the server; and storing a server lock structure in the server environment such that the server lock structure identifies the client process holding the granted object lock, the data object for which the lock has been granted, and the object portion covered by the corresponding lock.
Claim 8
Dependent Claim
52 words
A method as defined in claim 5, wherein the step of storing a client lock structure includes the step of storing sufficient client process and data object information to support splitting the object portion covered by locks recorded in the client environment to reflect the determined queue order for the requested locks.
Claim 9
Dependent Claim
107 words
A method as defined in claim 1, wherein the step of migrating all locks for the same data object recorded in the respective client environments to the server environment includes the steps of: determining sufficient information to reconstruct the original lock request from a client lock log; generating the original lock request in accordance with the reconstruction information and sending it to the server; and storing a server lock structure in the server environment such that the server lock structure identifies the client process holding the granted lock, the data object for which the lock has been granted, and the object portion covered by the corresponding lock.
Claim 10
Dependent Claim
27 words
A method as defined in claim 8, further including the step of deleting the client lock log entry and the client lock structure for the migrated lock.
Claim 11
Dependent Claim
71 words
A method as defined in claim 1, further including the steps of: determining if a predetermined client resource limit has been reached that prevents the local recording of a lock in the client environment; responding to the lock request of the first client process, if it is determined that the predetermined client resource limit has been reached, by migrating all object locks recorded in the client environment to the server environment.
Claim 12
Dependent Claim
101 words
A method as defined in claim 10, wherein the step of migrating all locks in the client environment to the server environment includes the steps of: determining sufficient information to reconstruct the original lock request from a client lock data structure; generating the original lock request in accordance with the reconstruction information and sending it to the server; and storing a server lock structure in the server environment such that the server lock structure identifies the client process holding the granted lock, the data object for which the lock has been granted, and the object portion covered by the corresponding lock.
Claim 13
Dependent Claim
92 words
A method as defined in claim 1, wherein the first received client process lock request includes data that specifies whether the client process desires to wait for a requested lock if it cannot be granted immediately, and the step of determining if the object portion covered by the requested lock overlaps the object portion covered by another lock and placing all lock requests for the same data object in contention for the lock request is executed only if the received request specifies that the client desires to wait for a requested lock.
Claim 14
Dependent Claim
289 words
A computer processing system comprising: a server that operates in accordance with a server environment; a direct access storage device containing data objects; a plurality of client processes, at least one of which has access to the data objects, that operate according to respective client environments; receiving means for receiving client process requests at the server from the client processes for locks that cover data object portions comprising respective data objects in their entirety or portions of the data objects; cache means for determining if an object lock in a data object requested by a first client process also has been requested by another client process and, if no other client process has requested a lock in the same data object, responding to the lock request of the first client process by granting an object lock to the first client process and recording the lock locally in the client environment of the first client process; and contention means for determining if the object portion covered by the first client process lock request overlaps the object portion covered by at least a second client process request and, if there is overlap, responding to the lock request by migrating any locks recorded in the client environments for the same data object to the server environment, wherein the migrating locks for the respective data objects in their entirety or portions of the data objects is effectuated even when client and server lock managers are different, placing all lock requests for the same data object in contention, and determining a queue order in which the requested locks will be granted to the requesting client processes, whereby staged locking occurs in the system in response to lock complexity level and the system resource limitations.
Claim 15
Dependent Claim
289 words
A computer processing system comprising: a server that operates in accordance with a server environment; a direct access storage device containing data objects; a plurality of client processes, at least one of which has access to the data objects, that operate according to respective client environments; receiving means for receiving client process requests at the server from the client processes for locks that cover data object portions comprising respective data objects in their entirety or portions of the data objects; cache means for determining if an object lock in a data object requested by a first client process also has been requested by another client process and, if no other client process has requested a lock in the same data object, responding to the lock request of the first client process by granting an object lock to the first client process and recording the lock locally in the client environment of the first client process; and contention means for determining if the object portion covered by the first client process lock request overlaps the object portion covered by at least a second client process request and, if there is overlap, responding to the lock request by migrating any locks recorded in the client environments for the same data object to the server environment, wherein the migrating locks for the respective data objects in their entirety or portions of the data objects is effectuated even when client and server lock managers are different, placing all lock requests for the same data object in contention, and determining a queue order in which the requested locks will be granted to the requesting client processes, whereby staged locking occurs in the system in response to lock complexity level and the system resource limitations.
Claim 16
Dependent Claim
38 words
A computer processing system as defined in claim 13, wherein the cache means adds an entry to a client lock log in the client environment that contains row entries with sufficient information to reconstruct the original lock request.
Claim 17
Dependent Claim
61 words
A computer processing system as defined in claim 14, wherein the first received lock request includes data that specifies whether the first client process desires recording of locks locally in the client environment, and the cache means executes its process operations only if the received request specifies that the first client process desires recording of locks locally in the client environment.
Claim 18
Dependent Claim
95 words
A computer processing system as defined in claim 13, wherein the cache means determines if any other client process in the client environment of the first client process has requested an object lock for an overlapping portion of a data object for which a lock is already maintained in the client environment and responds to the lock request by placing all lock requests and locally maintained locks in the client environment for the same data object in contention and determining a queue order in which the locks will be granted to the requesting client processes.
Claim 19
Dependent Claim
91 words
A computer processing system as defined in claim 13, wherein the client environment includes a client cache log and a client lock structure and the cache means adds an entry to a client lock log containing row entries that contain sufficient information to reconstruct the original lock request and stores a client lock structure in the client environment such that the client lock structure identifies the client process holding the granted lock, the data object for which the lock has been granted, and the object portion covered by the corresponding lock.
Claim 20
Dependent Claim
92 words
A computer processing system as defined in claim 17, wherein the contention means determines sufficient information to reconstruct the original lock request from the client lock log, generates the original lock request in accordance with the reconstruction information from the client lock log and sends it to the server, and stores a server lock structure in the server environment such that the server lock structure identifies the client process holding the granted lock, the data object for which the lock has been granted, and the object portion covered by the corresponding lock.
Claim 21
Dependent Claim
39 words
A computer processing system as defined in claim 17, wherein the cache means stores sufficient client process and data object information in the client environment to support splitting the object portion covered by locks recorded in the client environment.
Claim 22
Dependent Claim
88 words
A computer processing system as defined in claim 13, wherein the contention means determines sufficient information from a client lock data structure to reconstruct the original lock request, generates the original lock request in accordance with the reconstruction information and sends it to the server, and stores a server lock structure in the server environment such that the server lock structure identifies the client process holding the granted lock, the data object for which the lock has been granted, and the object portion covered by the corresponding lock.
Claim 23
Dependent Claim
29 words
A computer processing system as defined in claim 20, wherein the contention means further deletes the client lock log entry and the client lock structure for the migrated lock.
Claim 24
Dependent Claim
73 words
A computer processing system as defined in claim 13, wherein the cache means determines if a predetermined client resource limit has been reached that prevents the local recording of a lock in the client environment and responds to the lock request of the first client process, if the cache means determined that the predetermined client resource limit has been reached, by migrating all locks recorded in the client environment to the server environment.
Claim 25
Dependent Claim
118 words
A computer processing system as defined in claim 22, wherein: the client environment includes a client lock data structure, wherein the cache means determines sufficient information to reconstruct the original lock request from the client lock data structure and generates the original lock request in accordance with the reconstruction information in response to a callback command from the server and sends the generated lock request to the server; and the server environment includes a server lock structure, wherein the server records locks in the server lock structure with sufficient information to identify the client process holding the granted lock, the data object for which the lock has been granted, and the object portion covered by the corresponding lock.
Claim 26
Dependent Claim
97 words
A computer processing system as defined in claim 13, wherein the first received client process lock request includes data that specifies whether the client process desires to wait for a requested lock if it cannot be granted immediately, and the contention means for determining if the object portion covered by the requested lock overlaps the object portion covered by another lock and placing all lock requests for the same data object in contention for the lock request performs its process operations only if the received request specifies that the client desires to wait for a requested lock.
Claim 27
Dependent Claim
304 words
A program storage device readable by a server processor machine that includes a direct access storage device containing data files and communicates with a plurality of clients, the program storage device tangibly embodying a program of instructions executable by the processor machine to perform method steps for granting locks that cover data object portions comprising respective data objects in their entirety or portions of the data objects, such that the method steps performed by the server processor machine comprise the steps of: receiving a lock request at the server from a first client process for an object lock in one of the data objects; determining if any other client process has requested an object lock in the same data object; responding to the lock request of the first client process if it is determined that no other client process has requested a lock for the same data object by granting the requested lock to the first client process and recording the lock locally in the client environment of the first client process; responding to the lock request of the first client process, if it is determined that at least a second client process has locally recorded in its environment a lock for the same data object, by migrating any locks recorded in the respective client environments for an object portion within the same data object to the server environment, wherein migrating any locks of either the respective data objects in their entirety or portions of data objects occurs even when client and server lock managers are different, placing all lock requests for the same data object in contention in the server, and determining a queue order in which the requested locks will be granted to the requesting client processes, whereby staged locking occurs in response to lock complexity level and the machine resource limitation.
Claim 28
Dependent Claim
304 words
A program storage device readable by a server processor machine that includes a direct access storage device containing data files and communicates with a plurality of clients, the program storage device tangibly embodying a program of instructions executable by the processor machine to perform method steps for granting locks that cover data object portions comprising respective data objects in their entirety or portions of the data objects, such that the method steps performed by the server processor machine comprise the steps of: receiving a lock request at the server from a first client process for an object lock in one of the data objects; determining if any other client process has requested an object lock in the same data object; responding to the lock request of the first client process if it is determined that no other client process has requested a lock for the same data object by granting the requested lock to the first client process and recording the lock locally in the client environment of the first client process; responding to the lock request of the first client process, if it is determined that at least a second client process has locally recorded in its environment a lock for the same data object, by migrating any locks recorded in the respective client environments for an object portion within the same data object to the server environment, wherein migrating any locks of either the respective data objects in their entirety or portions of data objects occurs even when client and server lock managers are different, placing all lock requests for the same data object in contention in the server, and determining a queue order in which the requested locks will be granted to the requesting client processes, whereby staged locking occurs in response to lock complexity level and the machine resource limitation.
Claim 29
Dependent Claim
61 words
A program storage device as defined in claim 25, wherein the performed method steps cause the local recording of the lock in the client environment of the first client process to include adding an entry to a client lock log in the client environment containing row entries that contain sufficient information to reconstruct the lock request of the first client process.
Claim 30
Dependent Claim
74 words
A program storage device as defined in claim 26, wherein the lock request of the first client process includes data that specifies whether the client process desires recording of locks in the requesting client environment, and the step of recording the lock in the client environment of the first client process is executed only if the received lock request specifies that the first client process desires recording of locks locally in the client environment.
Claim 31
Dependent Claim
102 words
A program storage device as defined in claim 25, wherein the performed method steps include the steps of: determining if any other client process in the client environment of the first client process has requested a lock for an overlapping portion of a data object for which a lock is already maintained in the client environment; responding to the lock request by placing all lock requests and locally maintained locks in the client environment for the same data object in contention in the client environment and determining a queue order in which the locks will be granted to the requesting client processes.
Claim 32
Dependent Claim
101 words
A program storage device as defined in claim 28, wherein the performed method step of recording the lock locally in the client environment of the first client process includes the steps of: adding an entry to a client lock log in the client environment that contains row entries having sufficient information to reconstruct the lock request; and storing a client lock structure in the client environment such that the client lock structure identifies the first client process as holding the granted object lock, the data object for which the lock has been granted, and the range of the corresponding object lock.
Claim 33
Dependent Claim
116 words
A program storage device as defined in claim 29, wherein the performed method step of migrating all locks for the same data object recorded in the respective client environments to the server environment includes the steps of: determining sufficient information to reconstruct the original lock request from the client lock log; generating the original lock request in accordance with the reconstruction information from the client lock log and sending it to the server; and storing a server lock structure in the server environment such that the server lock structure identifies the client process holding the granted lock, the data object for which the lock has been granted, and the object portion covered by the corresponding lock.
Claim 34
Dependent Claim
56 words
A program storage device as defined in claim 29, wherein the performed method step of storing a client lock structure includes the step of storing sufficient client process and data object information to support splitting the object portions covered by locks recorded in the client environment to reflect the determined queue order for the requested locks.
Claim 35
Dependent Claim
111 words
A program storage device as defined in claim 25, wherein the performed method step of migrating all locks for the same data object recorded in the respective client environments to the server environment includes the steps of: determining sufficient information to reconstruct the original lock request from a client lock log; generating the original lock request in accordance with the reconstruction information and sending it to the server; and storing a server lock structure in the server environment such that the server lock structure identifies the client process holding the granted lock, the data object for which the lock has been granted, and the object portion covered by the corresponding lock.
Claim 36
Dependent Claim
34 words
A program storage device as defined in claim 32, wherein the performed method steps further include the step of deleting the client lock log entry and the client lock structure for the migrated lock.
Claim 37
Dependent Claim
77 words
A program storage device as defined in claim 32, wherein the performed method steps further include the steps of: determining if a predetermined client resource limit has been reached that prevents the local recording of a lock in the client environment; responding to the lock request of the first client process, if it is determined that the predetermined client resource limit has been reached, by migrating all locks recorded in the client environment to the server environment.
Claim 38
Dependent Claim
105 words
A program storage device as defined in claim 34, wherein the performed method step of migrating all locks in the client environment to the server environment includes the steps of: determining sufficient information to reconstruct the original lock request from a client lock data structure; generating the original lock request in accordance with the reconstruction information and sending it to the server; and storing a server lock structure in the server environment such that the server lock structure identifies the client process holding the granted lock, the data object for which the lock has been granted, and the object portion covered by the corresponding lock.
Claim 39
Dependent Claim
94 words
A program storage device as defined in claim 32, wherein the first received client process lock request includes data that specifies whether the client process desires to wait for a requested lock if it cannot be granted immediately, and the step of determining if the object portion covered by the requested lock overlaps the object portion covered by another lock and placing all lock requests for the same data object in contention for the lock request is executed only if the received request specifies that the client desires to wait for a requested lock.