Global avoidance of hang states via priority inheritance in multi-node computing system
First Claim
1. A computer-implemented method for a computing system, the method comprising:
- determining, by at least a processor, that a first process is waiting for a resource and that the first process is in a blocked state by accessing process state information from a shared global memory, where the process state information identifies processes and a current state of each process, where the shared global memory is shared and accessible by multiple nodes in the computing system;
identifying, by at least the processor, the resource that the first process is waiting for;
identifying, from the shared global memory, a blocking process that is holding the resource and a processing state of the blocking process;
comparing a priority of the blocking process with a priority of the first process; and
selectively increasing the priority of the blocking process based, at least in part, on the priority and the process state information of the blocking process.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems, methods, and other embodiments associated with avoiding resource blockages and hang states are described. One example computer-implemented method for a computing system includes determining that a first process is waiting for a resource and is in a blocked state. The resource that the first process is waiting for is identified. A blocking process that is holding the resource is then identified. A priority of the blocking process is compared with a priority the first process. If the priority of the blocking process is lower than the priority of the first process, the priority of the blocking process is increased. In this manner the blocking process can be scheduled for execution sooner and thus release the resource.
11 Citations
20 Claims
-
1. A computer-implemented method for a computing system, the method comprising:
-
determining, by at least a processor, that a first process is waiting for a resource and that the first process is in a blocked state by accessing process state information from a shared global memory, where the process state information identifies processes and a current state of each process, where the shared global memory is shared and accessible by multiple nodes in the computing system; identifying, by at least the processor, the resource that the first process is waiting for; identifying, from the shared global memory, a blocking process that is holding the resource and a processing state of the blocking process; comparing a priority of the blocking process with a priority of the first process; and selectively increasing the priority of the blocking process based, at least in part, on the priority and the process state information of the blocking process. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A clustered computing system, comprising:
-
a plurality of computing nodes for executing processes, each of the computing nodes including a processor, an operating system, and a database instance that is configured as part of a clustered database system; a shared global memory that is shared on a first node of the computing nodes and is accessible by the plurality of computing nodes in the clustered database system; a blocking avoidance logic embodied in at least one of the plurality of nodes and when executed is configured to; determine when a process in a second node of the computing nodes is in a wait state that is waiting for a resource, the process being a waiting process; determine an identity and a processing state of a blocking process from the shared global memory on the remote first node, where the blocking process is part of the second node or a third node of the computing nodes, to which the resource is allocated; and selectively causing an operating system local to the blocking process to increase an execution priority of the blocking process based, at least in part, on an execution priority of the waiting process and the process state information of the blocking process. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A non-transitory computer-readable medium storing computer-executable instructions that when executed by a processor of a computer cause the computer to perform actions, the executable instructions comprising instructions for:
-
determining, by at least the processor in the computer, that a first process is waiting for a resource and that the first process is in a blocked state by accessing process state information from a global memory, where the process state information identifies processes and a current state of each process, where the global memory is accessible by multiple nodes in a computing system; identifying, by at least the processor, the resource that the first process is waiting for; identifying, by at least the processor accessing the shared global memory, a blocking process that is holding the resource and a processing state of the blocking process; comparing, by at least the processor, a priority of the blocking process with a priority of the first process; and increasing, by at least the processor, the priority of the blocking process based, at least in part, on the priority and the process state information of the blocking process. - View Dependent Claims (19, 20)
-
Specification