<html>
<body>
<font size=3>At 12:33 PM 11/8/2005, Ranjit Pandit wrote:<br>
<blockquote type=cite class=cite cite="">> Mike wrote:<br>
>  - RDS does not solve a set of failure models.  For
example, if a RNIC / HCA<br>
> were to fail, then one cannot simply replay the operations on
another RNIC /<br>
> HCA without extracting state, etc. and providing some end-to-end
sync of<br>
> what was really sent / received by the application.  Yes, one
can recover<br>
> from cable or switch port failure by using APM style recovery but
that is<br>
> only one class of faults.  The harder faults either result in
the end node<br>
> being cast out of the cluster or see silent data corruption
unless<br>
> additional steps are taken to transparently recover - again app
writers<br>
> don't want to solve the hard problems; they want that done for
them.<br><br>
The current reference implementation of RDS solves the HCA failure case
as well.<br>
Since applications don't need to keep connection states, it's easier<br>
to handle cases like HCA and intermediate path failures.<br>
As far as application is concerned, every sendmsg 'could' result in
a<br>
new connection setup in the driver.<br>
If the current path fails, RDS reestablishes a connection, if<br>
available, on a different port or a different HCA , and replays the<br>
failed messages.<br>
Using APM is not useful because it doesn't provide failover across
HCA's.</blockquote><br>
I think others may disagree about whether RDS solves the problem. 
You have no way of knowing whether something was received or not into the
other node's coherency domain without some intermediary or application's
involvement to see the data arrived.  As such, you might see many
hardware level acks occur and not know there is a real failure.  If
an application takes any action assuming that send complete means it is
delivered, then it is subject to silent data corruption.  Hence, RDS
can replay to its heart content but until there is an application or
middleware level of acknowledgement, you have not solve the fault domain
issues.  Some may be happy with this as they just cast out the
endnode from the cluster / database but others see the loss of a server
as a big deal so may not be happy to see this occur.  It really
comes down to whether you believe loosing a server is worth while just
for a local failure event which is not fatal to the rest of the
server.<br><br>
APM's value is the ability to recover from link failure.  It has the
same value for any other ULP in that it recovers transparently to the
ULP.<br><br>
Mike</font></body>
</html>