IP Library Granted Patent US 12,724,640
Granted Patent B2
US 12,724,640 · App. 17/656,991 · Granted Sep 1, 2026

Ticket queue for controlling compute process access to shared data and compute resources

Inventors: George Diedrich Gristede (Katonah, NY); Matthew Mantell Ziegler (Sleepy Hollow, NY)
Assignee: International Business Machines Corporation
G06F9/5038G06F9/505G06F9/5072G06F9/5077G06F9/546
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 12,724,640
App. No.
17/656,991
Granted
Sep 1, 2026
Kind
B2
Abstract

Controlling compute process access to shared data and compute resources includes, responsive to a compute process determining that access to at least one of shared resources and shared data is necessary to perform a compute task, creating, by the compute process, a ticket file belonging to the compute process in a ticket queue directory. The compute process is allowed to proceed performing the compute task upon determining that the ticket file is first in line in a ticket queue of the ticket queue directory, according to a ticket ordering algorithm independently applied by the compute process. Subsequent to completing the compute task, the compute process removes the ticket from the ticket queue directory.

Claims (60)

1 . A computer-implemented method for compute process shared access management, the computer-implemented method, comprising:

responsive to a compute process determining that access to at least one of shared resources and shared data is necessary to perform a compute task, creating, by the compute process, a ticket file belonging to the compute process in a ticket queue directory, wherein the ticket file includes an identifier of the compute process, a creation time of the ticket file, a priority level of the compute process, and a timeout threshold for the compute process, wherein a user is enabled to perform a visual inspection of the ticket queue directory and create, delete and rearrange ticket files within the ticket queue directory as desired;

waiting a predefined amount of time before allowing the compute process to proceed performing the compute task in order to ensure the compute process is independent from network delays;

allowing the compute process to proceed performing the compute task after the predefined amount of time and upon determining that the ticket file is first in line in a ticket queue of the ticket queue directory by independently applying a deterministic, filename-based ticket ordering algorithm, wherein the compute process does not coordinate with an external ticketing service;

implementing a resource allocation policy that allows allocation to the compute process at a current point in time, wherein the resource allocation policy considers resource availability, process priority, resource fairness and resource buffers and limits, and the resource allocation policy constraining the ticket queue directory, wherein, responsive to determining that the ticket file belonging to the compute process is the first in line in the ticket queue however allowing the compute process to be performed would violate the resource allocation policy at the current point in time, performing:

disallowing the compute task from being performed;

removing the ticket file belonging to the compute process from the ticket queue directory;

creating a new ticket file for the compute process; and

placing the new ticket file in the ticket queue of the ticket queue directory according to the deterministic, filename-based ticket ordering algorithm applied by the compute process; and

removing, by the compute process, the ticket file from the ticket queue directory upon completing the compute task.

2 . The computer-implemented method of claim 1 , wherein

an ordering of the ticket queue directory is based on a deterministic function of the information according to the deterministic, filename-based ticket ordering algorithm respectively applied by each ticket file in the ticket queue directory.

3 . The computer-implemented method of claim 1 , further comprising: defining a timeout threshold for the compute process, wherein, an alternative compute process is allowed to perform an alternative compute task, notwithstanding whether the ticket file belonging to the alternative compute process is the first in line in the ticket queue, when the timeout threshold for the compute process has been exceeded.

4 . The computer-implemented method of claim 1 , further comprising:

assigning the compute process to one of a plurality of process classes defined for the ticket queue directory, wherein the deterministic, filename-based ticket ordering algorithm factors in a priority assigned to the compute process according to which of the plurality of process classes the compute process is assigned to; and

applying a resource throttling policy to the compute process, wherein the resource throttling policy consists of a dynamic limit of resources available for use by the compute process to perform the compute task relative to a total resource availability, and a buffer of a minimum number of resources that must be kept available for alternative compute processes.

5 . The computer-implemented method of claim 1 , wherein

the ticket file is an empty file stored in a common writable directory and visible to all other operating processes, or

the ticket file is stored local to the compute process and is shared with all other operating processes.

6 . A system for compute process shared access management, the system comprising:

a hardware memory; and

a hardware processor executing instructions stored in the hardware memory; wherein, when executed, the instructions cause the hardware processor to:

responsive to a compute process determining that access to at least one of shared resources and shared data is necessary to perform a compute task, create, by the compute process, a ticket file belonging to the compute process in a ticket queue directory, wherein the ticket file includes an identifier of the compute process, a creation time of the ticket file, a priority level of the compute process, and a timeout threshold for the compute process, wherein a user is enabled to perform a visual inspection of the ticket queue directory and create, delete and rearrange ticket files within the ticket queue directory as desired;

wait a predefined amount of time before allowing the compute process to proceed performing the compute task in order to ensure the compute process is independent from network delays;

allow the compute process to proceed performing the compute task after the predefined amount of time and upon determining that the ticket file is first in line in a ticket queue of the ticket queue directory by independently applying a deterministic, filename-based ticket ordering algorithm, wherein the compute process does not coordinate with an external ticketing service;

implement a resource allocation policy that allows allocation to the compute process at a current point in time, wherein the resource allocation policy considers resource availability, process priority, resource fairness and resource buffers and limits, and the resource allocation policy constraining the ticket queue directory, wherein, responsive to determining that the ticket file belonging to the compute process is the first in line in the ticket queue however allowing the compute process to be performed would violate the resource allocation policy at the current point in time, performing:

disallowing the compute task from being performed;

removing the ticket file belonging to the compute process from the ticket queue directory;

creating a new ticket file for the compute process; and

placing the new ticket file in the ticket queue of the ticket queue directory according to the deterministic, filename-based ticket ordering algorithm applied by the compute process; and

remove, by the compute process, the ticket file from the ticket queue directory upon completing the compute task.

7 . The system of claim 6 , wherein

an ordering of the ticket queue directory is based on a deterministic function of the information according to the deterministic, filename-based ticket ordering algorithm respectively applied by each ticket file in the ticket queue directory.

8 . The system of claim 6 , wherein, when executed, the instructions further cause the hardware processor to:

define a timeout threshold for the compute process, wherein, an alternative compute process is allowed to perform an alternative compute task, notwithstanding whether the ticket file belonging to the alternative compute process is the first in line in the ticket queue, when the timeout threshold for the compute process has been exceeded.

9 . The system of claim 6 , wherein, when executed, the instructions further cause the hardware processor to:

assign the compute process to one of a plurality of process classes defined for the ticket queue directory, wherein the deterministic, filename-based ticket ordering algorithm factors in a priority assigned to the compute process according to which of the plurality of process classes the compute process is assigned to; and

apply a resource throttling policy to the compute process, wherein the resource throttling policy consists of a dynamic limit of resources available for use by the compute process to perform the compute task relative to a total resource availability, and a buffer of a minimum number of resources that must be kept available for alternative compute processes.

10 . The system of claim 6 , wherein

the ticket file is an empty file stored in a common writable directory and visible to all other operating processes, or

the ticket file is stored local to the compute process and is shared with all other operating processes.

11 . A computer program product for compute process shared access management, the computer program product comprising a non-transitory computer-readable storage medium having program instructions embodied thereon, the program instructions executable by a processor to cause the processor to:

responsive to a compute process determining that access to at least one of shared resources and shared data is necessary to perform a compute task, create, by the compute process, a ticket file belonging to the compute process in a ticket queue directory, wherein the ticket file includes an identifier of the compute process, a creation time of the ticket file, a priority level of the compute process, and a timeout threshold for the compute process, wherein a user is enabled to perform a visual inspection of the ticket queue directory and create, delete and rearrange ticket files within the ticket queue directory as desired;

wait a predefined amount of time before allowing the compute process to proceed performing the compute task in order to ensure the compute process is independent from network delays;

allow the compute process to proceed performing the compute task after the predefined amount of time and upon determining that the ticket file is first in line in a ticket queue of the ticket queue directory by applying a deterministic, filename-based ticket ordering algorithm, wherein the compute process does not coordinate with an external ticketing service;

implement a resource allocation policy that allows allocation to the compute process at a current point in time, wherein the resource allocation policy considers resource availability, process priority, resource fairness and resource buffers and limits, and the resource allocation policy constraining the ticket queue directory, wherein, responsive to determining that the ticket file belonging to the compute process is the first in line in the ticket queue however allowing the compute process to be performed would violate the resource allocation policy at the current point in time, performing:

disallowing the compute task from being performed;

removing the ticket file belonging to the compute process from the ticket queue directory;

creating a new ticket file for the compute process; and

placing the new ticket file in the ticket queue of the ticket queue directory according to the deterministic, filename-based ticket ordering algorithm applied by the compute process; and

remove, by the compute process, the ticket file from the ticket queue directory upon completing the compute task.

12 . The computer program product of claim 11 , wherein

an ordering of the ticket queue directory is based on a deterministic function of the information according to the deterministic, filename-based ticket ordering algorithm respectively applied by each ticket file in the ticket queue directory.

13 . The computer program product of claim 11 , wherein the program instructions executable by the processor further cause the processor to:

define a timeout threshold for the compute process, wherein, an alternative compute process is allowed to perform an alternative compute task, notwithstanding whether the ticket file belonging to the alternative compute process is the first in line in the ticket queue, when the timeout threshold for the compute process has been exceeded;

assign the compute process to one of a plurality of process classes defined for the ticket queue directory, wherein the deterministic, filename-based ticket ordering algorithm factors in a priority assigned to the compute process according to which of the plurality of process classes the compute process is assigned to; and

apply a resource throttling policy to the compute process, wherein the resource throttling policy consists of a dynamic limit of resources available for use by the compute process to perform the compute task relative to a total resource availability, and a buffer of a minimum number of resources that must be kept available for alternative compute processes.

14 . The computer program product of claim 11 , wherein

the ticket file is an empty file stored in a common writable directory and visible to all other operating processes, or

the ticket file is stored local to the compute process and is shared with all other operating processes.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2022
From: GRISTEDE, GEORGE DIEDRICH; ZIEGLER, MATTHEW MANTELL
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 059426/0369 →
Continuity (1)
Related Publication 20230315529A1 · Oct 5, 2023
References Cited (21)
US 6154787A · Urevig et al. · 2000 [cited by applicant]
US 7047337B2 · Armstrong et al. · 2006 [cited by applicant]
US 8666957B2 · Srivastava et al. · 2014 [cited by applicant]
US 9600623B1 · Liu et al. · 2017 [cited by applicant]
US 9727372B2 · Jensen · 2017 [cited by examiner]
US 10645022B2 · Kaminski et al. · 2020 [cited by applicant]
US 11556382B1 · Byagowi · 2023 [cited by examiner]
US 20050251537A1 · Schwols et al. · 2005 [cited by applicant]
US 20120078944A1 · Lloyd · 2012 [cited by examiner]
US 20130198358A1 · Taylor · 2013 [cited by examiner]
US 20160029403A1 · Roy et al. · 2016 [cited by applicant]
US 20170132037A1 · Sevigny · 2017 [cited by examiner]
US 20180095803A1 · Walsh · 2018 [cited by examiner]
US 20180322226A1 · Liu et al. · 2018 [cited by applicant]
US 20230123568A1 · Jain · 2023 [cited by examiner]
Venugopal et al., “A Grid Service Broker for Scheduling Distributed Data-Oriented Applications on Global Grids.” 2nd International Workshop on Middleware in Grid Computing, Oct. 18, 2004, Toronto, Ontario, Canada (6 pag… [cited by applicant]
Abramson et al., “High performance parametric modeling with Nimrod/G: Killer application for the global grid?.” Proceedings 14th International Parallel and Distributed Processing Symposium. IPDPS 2000. IEEE, 2000 (9 pag… [cited by applicant]
Czajkowski et al. “Grid information services for distributed resource sharing.” Proceedings 10th IEEE International Symposium on High Performance Distributed Computing. IEEE, Aug. 2001 (14 pages). [cited by applicant]
Wang et al. “Cluster frameworks for efficient scheduling and resource allocation in data center networks: A survey.” IEEE Communications Surveys & Tutorials vol. 20, No. 4 (2018): 3560-3580 (21 pages). [cited by applicant]
“Python Filelock Module”, https://py-filelock.readthedocs.io/en/latest/api.html, accessed Mar. 29, 2022 (3 pages). [cited by applicant]
Wikipedia, Retrieved from: https://en.wikipedia.org/wiki/Peterson%27s_algorithm, Retrieved Date: May 28, 2025, 4 pages. [cited by applicant]