IP Library Granted Patent US 10,423,603
Granted Patent B2
US 10,423,603 · App. 15/187,973 · Granted Sep 24, 2019

Systems and methods for implementing a multi-host record lock mechanism

Inventors: Michael C Otto (Roseville, MN); Carl R Crandall (Roseville, MN); Forest F Crocker (Roseville, MN); Lnda J Brock (Roseville, MN); Douglas A Fuller (Roseville, MN); Michael J Rieschl (Roseville, MN)
Assignee: Unisys Corporation
G06F16/2343G06F9/52G06F16/2379
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,423,603
App. No.
15/187,973
Granted
Sep 24, 2019
Kind
B2
Abstract

A method includes determining, by a processor, whether a program check condition exists. The method further includes determining, by the processor, whether a lock descriptor of a lock in a file lock table satisfies an unlocking condition. The method further includes releasing, by the processor, the lock by setting the lock descriptor's host identifier as zero. The method further includes determining, by the processor, whether any lock in the file lock table satisfies a lock conflict condition. The method further includes determining, by the processor, whether the file lock table includes any lock descriptor that satisfies a locking condition. The method further includes creating, by the processor, a new lock using the lock descriptor that satisfies the locking condition.

Claims (67)

1. A method comprising:

determining, by a processor, whether a program check condition exists;

determining, by the processor, whether a lock descriptor of a lock in a file lock table satisfies an unlocking condition;

releasing, by the processor, the lock by setting the lock descriptor's host identifier as zero;

determining, by the processor, whether any lock in the file lock table satisfies a lock conflict condition, wherein the lock conflict condition comprises one or more of a specific value for lock descriptor's host identifier, more than one locks satisfy the unlocking condition, and an overlap in addressed segments;

determining, by the processor, whether the file lock table has an available lock descriptor; and

creating, by the processor, a new lock using the lock descriptor that satisfies the locking condition by:

setting, by the processor, the lock descriptor's last file relative segment as specified in a lock-unlock command;

setting, by the processor, the lock descriptor's host identifier as specified in the lock-unlock command; and

setting, by the processor, the lock descriptor's lock data command identification as specified in the lock-unlock command.

2. The method according to claim 1 further including

terminating, by the processor, the method with a recommended action equal to “check program,” if the program check condition exists.

3. The method according to claim 1 , further including

terminating, by the processor, the method with a recommended action equal to “check program” and a reason equal to “lock does not exist,” if no lock descriptor of a lock in the file lock table satisfies the unlocking condition.

4. The method according to claim 1 , further comprising

terminating, by the processor, the method with a recommended action equal to “resend lock data command” and a reason equal to “conflict exists,” if the file lock table includes the lock that satisfies the lock conflict condition.

5. The method according to claim 1 , further comprising

terminating, by the processor, the method with a recommended action equal to “resend lock data command” and a reason equal to “lock table full,” if the file lock table does not have any available lock descriptor.

6. The method according to claim 1 , wherein the step of creating the new lock using the lock descriptor that satisfies the locking condition further includes,

setting, by the processor, the lock descriptor's file identifier as specified in a lock-unlock command; and

setting, by the processor, the lock descriptor's file relative segment offset as specified in the lock-unlock command.

7. A computer program product comprising:

a non-transitory computer-readable medium comprising instructions which, when executed by a processor of a computing system, cause the processor to perform the steps of:

determining whether a program check condition exists;

determining whether a lock descriptor of a lock in a file lock table satisfies an unlocking condition;

releasing the lock by setting the lock descriptor's host identifier as zero;

determining whether any lock in the file lock table satisfies a lock conflict condition, wherein the lock conflict condition comprises one or more of a specific value for lock descriptor's host identifier, more than one locks satisfy the unlocking condition, and an overlap in addressed segments;

determining whether the file lock table has an available lock descriptor; and

creating a new lock using the lock descriptor that satisfies the locking condition by:

setting the lock descriptor's last file relative segment as specified in a lock-unlock command;

setting the lock descriptor's host identifier as specified in the lock-unlock command; and

setting the lock descriptor's lock data command identification as specified in the lock-unlock command.

8. The computer program product of claim 7 , wherein the steps further include

terminating the method with a recommended action equal to “check program,” if the program check condition exists;

(setting the lock descriptor's last file relative segment as specified in a lock-unlock command;

setting the lock descriptor's host identifier as specified in the lock-unlock command; and

setting the lock descriptor's lock data command identification as specified in the lock-unlock command.

9. The computer program product of claim 7 , wherein the steps further include

terminating the method with a recommended action equal to “check program” and a reason equal to “lock does not exist,” if no lock descriptor of a lock in the file lock table satisfies the unlocking condition.

10. The computer program product of claim 7 , wherein the steps further include

terminating the method with a recommended action equal to “resend lock data command” and a reason equal to “conflict exists,” if the file lock table includes the lock that satisfies the lock conflict condition.

11. The computer program product of claim 7 , wherein the steps further include

terminating the method with a recommended action equal to “resend lock data command” and a reason equal to “lock table full,” if the file lock table does not have any available lock descriptor.

12. The computer program product of claim 7 , wherein the step of creating the new lock using the lock descriptor that satisfies the locking condition further includes

setting the lock descriptor's file identifier as specified in a lock-unlock command; and

setting the lock descriptor's file relative segment offset as specified in the lock-unlock command.

13. An apparatus, comprising:

a memory; and

a processor coupled to the memory, the processor being configured to perform the steps of:

determining whether a program check condition exists;

determining whether a lock descriptor of a lock in a file lock table satisfies an unlocking condition;

releasing the lock by setting the lock descriptor's host identifier as zero;

determining whether any lock in the file lock table satisfies a lock conflict condition, wherein the lock conflict condition comprises one or more of a specific value for lock descriptor's host identifier, more than one locks satisfy the unlocking condition, and an overlap in addressed segments;

determining whether the file lock table has an available lock descriptor that satisfies a locking condition; and

creating a new lock using the lock descriptor that satisfies the locking condition by:

setting the lock descriptor's last file relative segment as specified in a lock-unlock command;

setting the lock descriptor's host identifier as specified in the lock-unlock command; and

setting the lock descriptor's lock data command identification as specified in the lock-unlock command.

14. The apparatus of claim 13 , wherein the steps further include

terminating the method with a recommended action equal to “check program,” if the program check condition exists.

15. The apparatus of claim 13 , wherein the steps further include

terminating the method with a recommended action equal to “check program” and a reason equal to “lock does not exist,” if no lock descriptor of a lock in the file lock table satisfies the unlocking condition.

16. The apparatus of claim 13 , wherein the steps further include

terminating the method with a recommended action equal to “resend lock data command” and a reason equal to “conflict exists,” if the file lock table includes the lock that satisfies the lock conflict condition.

17. The apparatus of claim 13 , wherein the step of creating the new lock using the lock descriptor that satisfies the locking condition further includes

setting the lock descriptor's file identifier as specified in a lock-unlock command; and

setting the lock descriptor's file relative segment offset as specified in the lock-unlock command.

Assignments (9)
AMENDED AND RESTATED PATENT SECURITY AGREEMENT Recorded Jun 27, 2025
From: UNISYS CORPORATION; UNISYS HOLDING CORPORATION; UNISYS NPL, INC.; UNISYS AP INVESTMENT COMPANY I
To: COMPUTERSHARE TRUST COMPANY, N.A., AS COLLATERAL TRUSTEE
Reel/Frame 071759/0527 →
RELEASE OF SECURITY INTEREST Recorded Oct 28, 2020
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: UNISYS CORPORATION
Reel/Frame 054231/0496 →
SECURITY INTEREST Recorded Jan 31, 2020
From: UNISYS CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 051682/0760 →
SECURITY INTEREST Recorded Nov 21, 2019
From: UNISYS CORPORATION
To: WELLS FARGO NATIONAL ASSOCIATION
Reel/Frame 051075/0721 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2018
From: OTTO, MICHAEL C; CRANDALL, CARL R; CROCKER, FOREST F; BROCK, LINDA J; FULLER, DOUGLAS A; RIESCHL, MICHAEL J
To: UNISYS CORPORATION
Reel/Frame 047030/0395 →
RELEASE OF SECURITY INTEREST Recorded Nov 9, 2017
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: UNISYS CORPORATION
Reel/Frame 044416/0114 →
SECURITY INTEREST Recorded Oct 6, 2017
From: UNISYS CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 044144/0081 →
PATENT SECURITY AGREEMENT Recorded Apr 27, 2017
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 042354/0001 →
SECURITY INTEREST Recorded Oct 6, 2016
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 039960/0057 →