Cluster inter-process communication transport
First Claim
1. A computer implemented method on a first node for communication between processes, comprising:
- determining if a first server name of a first server process on the first node exists in a plurality of entries in a process table on the first node;
if the first server name is not in the entries in the process table, writing a first entry with (a) the first server name, (b) a first process ID of the first server process, and (c) a first process state of the first server process in (1) the process table and (2) process tables on other nodes;
determining again if the first server name exists in one of the entries excluding the first entry in the process table;
if the first server name is not in one of the entries excluding the first entry;
writing a first location of the first entry in a first row of a handle table on the first node, wherein a first row index to the first row is a first process handle for the first server process; and
informing the first server process that the first server process is registered.
4 Assignments
0 Petitions
Accused Products
Abstract
A method for a name mapping module on a node to handle communication between a client process and a server process includes receiving from a client process a process handle and a message for a server process, mapping the process handle to an entry of the server process in a process table, reading the entry to retrieve (1) a node number of a node and (2) a process ID on the node, and sending the message with the process ID to the node. If the server process is not accepting messages, the method further includes waiting for the backup server process to take over for the server process before sending the message. If the server process or the node fails after the message was sent, the method further includes waiting for the backup server process to take over for the server process.
217
23 Citations
25 Claims
-
1. A computer implemented method on a first node for communication between processes, comprising:
-
determining if a first server name of a first server process on the first node exists in a plurality of entries in a process table on the first node; if the first server name is not in the entries in the process table, writing a first entry with (a) the first server name, (b) a first process ID of the first server process, and (c) a first process state of the first server process in (1) the process table and (2) process tables on other nodes; determining again if the first server name exists in one of the entries excluding the first entry in the process table; if the first server name is not in one of the entries excluding the first entry; writing a first location of the first entry in a first row of a handle table on the first node, wherein a first row index to the first row is a first process handle for the first server process; and informing the first server process that the first server process is registered. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer implemented method for a name mapping module on a node in a cluster to register a server process on the node for communication with a client process in the cluster, comprising:
-
(a) determining if a server name of the server process is in one of a plurality of entries of a process table on the node; (b) if the server name is in one of the entries of the process table, informing the server process that it cannot be registered; (c) if the server name is not in one of the entries of the process table, writing a new entry with the server name, a node number of the node, a process ID of the server process on the node, and a process state of the server process in (1) the process table on the node and (2) another process table on another node in the cluster; (d) determining again if the server name is in one of the entries excluding the new entry of the process table; (e) if the server name is in one of the entries excluding the new entry; erasing the new entry in the process table of the node and said another process table in said another node; repeating above actions after a timeout; (f) if the server name is not in one of the entries excluding the new entry; writing a location of the new entry in a row in a handle table, wherein a row index to the row is a process handle for the server process; informing the server process that the server process is registered. - View Dependent Claims (13, 14)
-
-
15. A computer implemented method for a name mapping module on a node to register a server process on the node using a handle table and a process table, wherein:
-
the handle table comprises a plurality of rows, each of the rows storing (1) a first location of a first entry in the process table for a primary server process, and (2) a second location of a second entry in the process table for a backup server process to the primary server process, wherein row indices to the plurality of rows are process handles for a plurality of processes; the process table comprises a plurality of memory regions assigned to respective nodes, each of the memory regions including a plurality of entries, each of the entries storing (1) a process name, (2) a node number, (3) a process ID, and (4) a process state, wherein what is written to each memory region is controlled by a respective node; the method comprises; (a) determining if a server process name of the server process is in one of the entries in the process table; (b) if the server process name is in one of the entries, informing the server process that it cannot be registered; (c) if the server process name is not in one of the entries, writing a new entry with the server process name, a server node number of the node, a server process ID of the server process on the node, and a server process state of the server process in (1) a memory region of the process table in the node and (2) another memory region of another process table in another node, wherein the memory region and said another memory region are assigned to the node; (d) determining again if the server process name is in one of the entries excluding the new entry of the process table; (e) if the server process name is in one of the entries excluding the new entry; erasing the new entry in the process table of the node and said another process table in said another node; repeating above actions after a timeout; (f) if the server process name is not in one of the entries excluding the new entry; writing a location of the new entry in a row in the handle table, wherein a row index to the row is a process handle for the server process; informing the server process that the server process is registered. - View Dependent Claims (16)
-
-
17. A computer implemented method for a name mapping module on a first node to handle communication between a client process at a first node and a server process at a second node, comprising:
-
receiving, from the client process at the first node, a process handle and a message for the server process at the second node; after said receiving, mapping the process handle to a row in a handle table, the handle table being at the first node; after said mapping the process handle, reading the row to retrieve a location in a process table, the process table being at the first node; after said reading the row, mapping the location to an entry in the process table; after said mapping the location, reading the entry to retrieve (1) a node number of the second node, (2) a process ID of the server process on the second node, and (3) a process state of the server process; after said reading the entry, determining if the server process is accepting messages according to the process state; and if the server process is accepting messages, sending the message with the process ID to the second node. - View Dependent Claims (18, 19, 20, 21, 22)
-
-
23. A computer implemented method for a name mapping module on a first node in a cluster to respond to a failing server process on a second node in the cluster, comprising:
-
detecting a server process failing on the second node; determining if the server process has a backup server process on the first node by reading a region of a process table on the first node, the first node controlling what is written to that region of the process table, the process stable comprising process entries each having (1) a process name, (2) a process ID, and (3) a process state of a respective server process, the process state comprising one of primary and backup; if the server process does not have a backup server process on the first node, invalidating a handle entry in a handle table on the first node, wherein; the handle entry has (1) a first area that stores a first location of a first process entry in the process table and (2) a second area that stores a second location of a second process entry in the process table; the first process entry stores (1) a process name, (2) a process ID, and (3) a process state of the server process; the second process entry may store (1) a process name, (2) a process ID, and (3) a process state of the backup server process; and the process handle for the server process comprises a row index to the handle entry; if the server process does have a backup server process on the first node; updating the handle entry to replace the first location with the second location in the first area so that the process handle leads to the backup server process; and sending a message to the backup server process to take over as the server process.
-
-
24. A method for a name mapping module on a first node in a cluster to respond to a failing second node in the cluster, comprising:
-
reading a first process entry of a server process on the second node in a region of a process table on the first node, wherein the region is owned by the second node so the second node controls what is written to that region; determining if the first process entry is valid, wherein the first process entry is valid if the first process entry contains a server name; if the first process entry is valid, reading process entries of other server processes in another region of the process table for a backup server process to the server process that is located on the first node, wherein the another region is owned by the first node so the first node controls what is written to that region; if the server process does not have the backup server process on the first node, invalidating a handle entry in a handle table on the first node, wherein; a process handle for the server process comprises a row index to a handle entry in a handle table on the first node; the handle entry has (1) a first area for storing a first location of the first process entry and (2) a second area for storing a second location of a second process entry in the process table; the first process entry stores (1) a process name, (2) a process ID, and (3) a process state of the server process; and the second process entry may store (1) a process name, (2) a process ID, and (3) a process state of the backup server process; if the server process has the backup server process; updating the handle entry to replace the first location with the second location in the first area so that the process handle leads to the backup server process; and sending a message to the backup server process to take over for the server process. - View Dependent Claims (25)
-
Specification