Failover mechanisms in RDMA operations
First Claim
1. A method for recovery from failure in a node in a data processing system which includes said node and a communications adapter coupled to the node, said method comprising the steps of:
- restarting said failed node and generating keys, for data packets to be transferred to said adapter, based on a random number seeded key generator;
checking, by at least one of said adapters, that a key provided within data packet headers received by said at least one adapter matches a key loaded by a device driver into a table resident in the respective one of said nodes;
dropping said packet if said checking indicates a failed match.
1 Assignment
0 Petitions
Accused Products
Abstract
In remote direct memory access transfers in a multinode data processing system in which the nodes communicate with one another through communication adapters coupled to a switch or network, failures in the nodes or in the communication adapters can produce the phenomenon known as trickle traffic, which is data that has been received from the switch or from the network that is stale but which may have all the signatures of a valid packet data. The present invention addresses the trickle traffic problem in two situations: node failure and adapter failure. In the node failure situation randomly generated keys are used to reestablish connections to the adapter while providing a mechanism for the recognition of stale packets. In the adapter failure situation, a round robin context allocation approach is used with adapter state contexts being provided with state information which helps to identify stale packets. In another approach to handling the adapter failure situation counts are assigned which provide an adapter failure number to the node which will not match a corresponding number in a context field in the adapter, thus enabling the identification of stale packets.
-
Citations
20 Claims
-
1. A method for recovery from failure in a node in a data processing system which includes said node and a communications adapter coupled to the node, said method comprising the steps of:
-
restarting said failed node and generating keys, for data packets to be transferred to said adapter, based on a random number seeded key generator;
checking, by at least one of said adapters, that a key provided within data packet headers received by said at least one adapter matches a key loaded by a device driver into a table resident in the respective one of said nodes;
dropping said packet if said checking indicates a failed match. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for recovery from failure in a communications adapter coupled to a node in a data processing system which includes said node and said communications adapter, said method comprising the steps of:
-
initiating recovery operations within said failed adapter;
acquiring, by said adapter, from said node, adapter state information from a set of available adapter state contexts used for remote direct memory access, said state contexts being supplied in round robin fashion from said set of available state contexts;
firstly checking, by said failed adapter, to insure that said acquired state context is owned by a current window by checking a window identifier field in said state context in memory in said adapter; and
secondly, checking, by said failed adapter, to verify that a state context identifier key for said remote direct memory access matches a state context identifier key field in adapter memory. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A method for determining failure in a communications adapter coupled to a node in a data processing system which includes said node and said communications adapter, said method comprising the steps of:
-
maintaining within said node a count of adapter recovery events for said adapter;
establishing an adapter state information context residing within said node and in said adapter, said state information context including said count;
transferring data packets with packet header information including said count; and
comparing said count in said data packet header with said count established in said adapter to determine that an adapter failure has occurred. - View Dependent Claims (15, 16, 17)
-
-
18. A multinode data processing system comprising:
-
a plurality of data processing nodes together with a respective plurality of communications adapters coupled thereto which enable said nodes to communicate through a switch or network to which said adapters are coupled; and
programming means within said nodes and said adapters for restarting a failed node and for generating keys for data packets to be transferred to said adapters, based on a random number seeded key generator; and
for checking, by at least one of said adapters, that a key provided within data packet headers received by said at least one adapter matches a key loaded by a device driver into a table resident in the respective one of said nodes; and
for dropping said packet if said checking indicates a failed match.
-
-
19. A multinode data processing system comprising:
-
a plurality of data processing nodes together with a respective plurality of communications adapters coupled thereto which enable said nodes to communicate through a switch or network to which said adapters are coupled; and
programming means within said nodes and said adapters for initiating recovery operations within a failed adapter;
for acquiring, by said failed adapter, from the node coupled thereto, adapter state information from a set of available adapter state contexts used for remote direct memory access, said state contexts being supplied in round robin fashion from said set of available state contexts; and
for firstly checking, by said failed adapter, to insure that said acquired state context is owned by a current window by checking a window identifier field in said state context in memory in said adapter; and
secondly, for checking, by said failed adapter, to verify that a state context identifier key for said remote direct memory access matches a state context identifier key field in adapter memory.
-
-
20. A multinode data processing system comprising:
-
a plurality of data processing nodes together with a respective plurality of communications adapters coupled thereto which enable said nodes to communicate through a switch or network to which said adapters are coupled; and
programming means within said nodes and said adapters for maintaining within said node a count of adapter recovery events for said adapter; and
for establishing adapter state information contexts residing within said nodes and in said adapters, said state information context including said count; and
for transferring data packets with packet header information including said count; and
for comparing said count in said data packet header with said count established in said adapter to determine that an adapter failure has occurred.
-
Specification