US2004073683A1PendingUtilityA1

Method and apparatus for providing an integrated cluster alias address

Priority: Dec 31, 1998Filed: Oct 2, 2003Published: Apr 15, 2004
Est. expiryDec 31, 2018(expired)· nominal 20-yr term from priority
H04L 45/00H04L 67/1001H04L 67/14H04L 67/1038H04L 45/24H04L 67/1012H04L 67/1014H04L 67/1017H04L 67/1006H04L 67/1008H04L 67/1034
44
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

In accordance with the present invention, a method is disclosed for making a cluster of processor nodes appear as a single processor node to client applications that operate in conjunction with that cluster. More particularly, the cluster is provided with a skinny stack application for selecting a processor node, to which a connection will be established, after consideration has been given to the TCP port numbers that the processor node is listening for. Further, the cluster is provided with a method for tunneling data packets between processor nodes of the cluster such that the data packets do not have to be re-transmitted across a network. Further still, the cluster is provided with a virtual subnet to which the cluster alias address is associated. The route to that subnet is advertised to the network routers by the processor nodes that are associated with the virtual subnet. Lastly, the cluster is provided with a method for substituting a processor node of the cluster in place of a processor node that has failed, for the duration of the routing failover delay. Using such a method, data packets directed to the failed processor node are prevented from being dropped during that routing failover delay.

Claims

exact text as granted — not AI-modified
What is claimed is:  
     
         1 . A method for selecting a processor node of a cluster of processor nodes such that a client application can establish a connection to the cluster, said method comprising the steps of: 
 issuing a request, by the client application, for requesting an establishment of a connection to the cluster;    identifying port numbers with which the client application is associated; and    selecting a processor node from the cluster of processor nodes as a function of the identified port numbers with which the client is associated.    
     
     
         2 . The method for selecting a processor node of the cluster of processor nodes, as described in  claim 1 , further including the steps of: 
 using a receiving processor node of the cluster, for receiving the request issued by the client application, said request identifying at least one of the port numbers associated with the client application;    determining, by the receiving processor node, that the request is requesting the establishment of a connection between the client application and a first application running on the cluster;    choosing the processor node from a group of candidate processor nodes within the cluster, the processor node executing a receiver application that is monitoring the at least one port number associated with the client application; and    establishing the connection between the first application and the client application.    
     
     
         3 . The method for selecting a processor node of the cluster of processor nodes, as described in  claim 2 , wherein the choosing step includes the steps of: 
 accessing a list of candidate processor nodes that are associated with a cluster alias address of the cluster by the receiving processor node;    determining whether a candidate processor node in the list has a receiver application that is monitoring the at least one port number associated with the client application; and    deciding, in response to a determination that a candidate processor node in the list has a receiver application that is monitoring the at least one port number associated with the client application, whether a maximum number of connections have previously been established by that candidate processor node.    
     
     
         4 . The method for selecting a processor node of the cluster of processor nodes, as described in  claim 3 , wherein said deciding step further includes the steps of: 
 decrementing a counter by a predetermined value, the counter being initialized to a value that is representative of the capacity of the candidate for establishing new connections;    determining if the counter has reached a count of zero;    selecting another candidate processor node in response to a determination that the counter has reached a count of zero; and    transferring the request to the candidate processor node in response to a determination that the counter has not reached a count other than zero, such that the connection can be established.    
     
     
         5 . The method for selecting a processor node of the cluster of processor nodes, as described in  claim 4 , wherein the request issued by the client application is a specially configured data packet transferred across an IP network coupled to the cluster of processor nodes.  
     
     
         6 . The method for selecting a processor node of the first cluster of processor nodes, as described in  claim 5 , wherein the request issued by the client application is a TCP/IP configured data packet having a header that includes a SYN bit that is set to indicate that the client application is requesting establishment of the connection to the cluster.  
     
     
         7 . The method for selecting a processor node of the cluster of processor nodes, as described in  claim 6 , wherein the header includes a field that identifies at least one port number with which the client application is associated.  
     
     
         8 . In a computer network having a plurality of network routers and a plurality of processor nodes, including associated processor nodes, a method for arranging a plurality of associated processor nodes in a virtual subnet, comprising the steps of: 
 advertising on the computer network, by each of the plurality of associated processor nodes, that the plurality of associated processor nodes comprise a network path to the virtual subnet, the plurality of associated processor nodes being free of physical connections to the virtual subnet;    determining, by the plurality of network routers, a routing path to the virtual subnet, the routing path including the plurality of associated processor nodes; and    delivering data packets that include a destination address associated with the virtual subnet, to one of the associated processor nodes via one of the network routers that has a physical connection to the associated processor node.    
     
     
         9 . The method for arranging a plurality of associated processor nodes in a virtual subnet, as described in  claim 8 , wherein said network router splits the delivery of the plurality of data packets equally among the plurality of associated processor nodes.  
     
     
         10 . The method for arranging a plurality of associated processor nodes in a virtual subnet, as described in  claim 9 , wherein each of the plurality of associated processor nodes is running the Digital UNIX operating system.  
     
     
         11 . The method for arranging a plurality of associated processor nodes in a virtual subnet, as described in  claim 8 , wherein each of the plurality of associated processor nodes use the OSPF IP routing protocol to advertise the network path to the virtual subnet.  
     
     
         12 . The method for arranging a plurality of associated processor nodes in a virtual subnet, as described in  claim 8 , wherein each of the plurality of associated processor nodes use the RIP IP routing protocol to advertise the network path to the virtual subnet.  
     
     
         13 . A method for preventing retransmission of data packets issued to a first processor node that has stopped functioning, comprising the steps of: 
 identifying that the first processor node has stopped functioning; and    assigning an address, associated with the first processor node, to a second processor node in response to said identification that the first processor node has stopped functioning, such that data packets addressed to the first processor node will be redirected to the second processor node.    
     
     
         14 . The method for preventing retransmission of data packets issued to a first processor node that has stopped functioning as described in  claim 13 , further including the steps of: 
 in response to said identifying step identifying that the first processor node has stopped functioning, issuing a message, from a cluster management application associated with a cluster to which the first processor node belongs, to a plurality of other processor nodes within that cluster; and    arbitrating, by the plurality of other processor nodes of the cluster, to determine said second processor node that will receive the data packets issued to the first processor node.    
     
     
         15 . The method for preventing retransmission of data packets issued to a first processor node that has stopped functioning, as described in  claim 14 , further including the step of: 
 assigning, by the second processor node, a network layer address associated with the first processor node to the second processor node such that the data packets issued to the first processor node will be received by the second processor node.    
     
     
         16 . The method for preventing retransmission of data packets issued to a first processor node that has stopped functioning, as described in  claim 15 , further including the step of: 
 de-assigning, by the second processor node, the network layer address associated with the first processor node after a predetermined amount of time has expired.    
     
     
         17 . The method for preventing retransmission of data packets issued to a first processor node that has stopped functioning, as described in  claim 16 , wherein the predetermined period of time is: 
 a period of time for a network router, coupled to the first and second processor nodes, to identify that the first processor node has stopped functioning.    
     
     
         18 . The method for preventing retransmission of data packets issued to a first processor node that has stopped functioning, as described in  claim 17 , wherein the network router is prevented from sending any data packets to the first processor node after the predetermined period of time has expired.  
     
     
         19 . The method for preventing retransmission of data packets issued to a first processor node that has stopped functioning, as described in  claim 18 , wherein the first and second processor nodes are executing the Digital UNIX operating system.  
     
     
         20 . A method for delivering a received data packet from a receiving processor node to a destination processor node, including the steps of: 
 configuring, by the receiving processor node, the received data packet in a predetermined configuration to form a configured data packet, said configuration being used by an application executing on the receiving processor node;    passing the configured data packet to a remote procedure, said remote procedure for passing data across a high speed communications interface between processor nodes of a cluster; and    issuing said remote procedure such that the configured data packet is delivered to the destination processor node in a manner free of being reconfigured.    
     
     
         21 . The method of  claim 20  wherein the configured data packet is stored in an Mbuf data structure, said Mbuf data structure being a queue for providing received data packets to said application enabling said data packets to be serviced by said application.  
     
     
         22 . The method of  claim 21  wherein said high speed communications interface is a Gigabit Ethernet interface.  
     
     
         23 . The method of  claim 21  wherein said high speed communications interface is an ATM interface.  
     
     
         24 . The method of  claim 21  wherein each of the processor nodes of the cluster is running the Digital UNIX operating system.  
     
     
         25 . A computer system, comprising: 
 a client processor node executing a client application, the client application monitoring a certain port number;    a plurality of processor nodes coupled together to form a cluster, the cluster being responsive to the client processor node, each processor node of the cluster including a CPU for executing an application for selecting one node from the plurality of processor nodes, such that the selected node serves as a destination processor node; and    a receiver application executed on the destination processor node for monitoring the port number that the client application monitors.    
     
     
         26 . A computer system as claimed in  claim 25  wherein the executed application for selecting the destination processor node is a skinny stack application; and 
 the plurality of processor nodes further includes a plurality of memory systems, one for each node in the plurality of processor nodes, each memory system storing the skinny stack application of a respective processor node.  
 
     
     
         27 . The computer system described in  claim 26 , further including: 
 a computer network for coupling the client processor node to the plurality of processor nodes such that the receiver application establishes a connection to the client application across the computer network.    
     
     
         28 . The computer system described in  claim 27 , further including a database that is accessible by each of the plurality of processor nodes, the database indicating a plurality of port numbers that are being monitored by each of the plurality of processor nodes.  
     
     
         29 . The computer system described in  claim 28  wherein the skinny stack application accesses the database to determine the port number monitored by the receiver application of the destination processor node.  
     
     
         30 . The computer system described in  claim 29 , further including: 
 a plurality of software counters, each associated with a different one of the plurality of processor nodes, each time that a connection is established by a receiver application executing on a processor node, the software counter associated with the processor node being decremented by a predetermined value.    
     
     
         31 . The computer system described in  claim 30  wherein the plurality of software counters are initialized to individual selection weight values that are indicative of the associated processor node's capacity for establishing connections.  
     
     
         32 . The computer system described in  claim 31  wherein decrementing of the software counter associated with the destination processor node results in a non-zero count value, indicates that the destination processor node has capacity to establish another connection.  
     
     
         33 . The computer system described in  claim 32  wherein each of the plurality of processor nodes is running The Digital Unix operating system.  
     
     
         34 . A computer system, comprising: 
 a plurality of processor nodes, associated with a virtual subnet, each of the processor nodes advertising themselves as a network route to the virtual subnet, each of the plurality of processor nodes having a virtual connection to the virtual subnet;    a plurality of network routers, comprising a network coupled to each of the plurality of processor nodes, each of the network routers developing a map database indicating a network route to the virtual subnet based upon the processor nodes advertising; and    a plurality of CPUs, a different one included in each node of the plurality of processor nodes, for executing an application that effectuates the advertising by the processor nodes as network routes to the virtual subnet.    
     
     
         35 . The computer system described in  claim 34 , further comprising: 
 a client processor node, for executing a client application that issues a data pocket to an address of a processor node within the virtual subnet; and    one network router, of the plurality of network routers, having a physical connection to at least one processor node of the plurality of processor nodes associated with the virtual subnet, the one network router imposing a bit mask on network addresses to form respective subnet addresses.    
     
     
         36 . The computer system described in  claim 35  wherein each of the plurality of processor nodes is running The Digital Unix operating system.  
     
     
         37 . The computer system described in  claim 36  wherein the application that effectuates the advertising by the processor nodes as network routes to the virtual subnet implements the OSPF IP routing protocol.  
     
     
         38 . The computer system described in  claim 36  wherein the application that effectuates the advertising by the processor nodes as network routes to the virtual subnet implements the RIP IP routing protocol.  
     
     
         39 . A computer system, comprising: 
 a plurality of processor nodes, each including a network interface module for connecting to a computer network, the processor nodes being coupled together to form a cluster;    a first one of the processor nodes executing a cluster management application for monitoring the processor nodes to determine ones of the processor nodes that are non-functioning and for identifying the non-functioning processor nodes to the other processor nodes; and    a second one of the processor nodes allocating an address, associated with at least one of the non-functioning processor nodes, to the associated network interface module.    
     
     
         40 . The computer system described in  claim 39 , further comprising: 
 at least one network router, coupling the processor nodes to the computer network, each network router continuing to query the non-functioning processor nodes for a predetermined period of time, the predetermined period of time being a routing failover delay.    
     
     
         41 . The computer system described in  claim 40 , wherein the second one of the processor nodes de-allocates the address from the associated network interface module after the routing failover delay has expired.  
     
     
         42 . The computer system described in  claim 41 , wherein each of the processor nodes is running The Digital Unix operating system.  
     
     
         43 . A computer system, comprising: 
 a plurality of processor nodes, forming a cluster, each of the processor nodes coupled to a computer network;    a first one of the processor nodes executing a first receiver application for receiving data packets issued across the computer network by a client application and for configuring a received data packet in a first configuration such that the data packet is serviceable by a first high level application running on the first one of the processor nodes;    a second one of the processor nodes servicing data packets, the second one of the processor nodes executing a second receiver application; and    a high speed communications interface for passing packets of information between the plurality of processor nodes forming the cluster, the high speed communications interface receiving the first configuration of the data packet from the first one of the processor nodes and delivering it to the second one of the plurality of processor nodes without changing the configuration, such that the data packet is serviced by a high level application running on the second one of the processor nodes.    
     
     
         44 . The computer system described in  claim 43 , further comprises first Mbuf data structure for storing the first configuration of the received data packet, said first Mbuf data structure being a queue for providing the received data packet to the first high level application.  
     
     
         45 . The computer system described in  claim 44 , wherein the high speed communications interface is a Gigabit Ethernet interface.  
     
     
         46 . The computer system described in  claim 44 , wherein the high speed communications interface is an ATM interface.  
     
     
         47 . The computer system described in  claim 44 , wherein each processor node of the plurality of processor nodes is running the Digital Unix operating system.

Join the waitlist — get patent alerts

Track US2004073683A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.