Subject: [AAA-WG]: Re: Diameter Issue #334

From: Bernard Aboba <[email-masked]>
Date: Thu, 11 Apr 2002 18:56:46 -0700 (PDT)

> One side effect we should consider is what will happen to the simple 
> case,
> where there are no proxies involved. I think the proposed change might
> increase the time til failover by up to T (the watchdog timeout) in some
> cases.
> 
> For example:
> 
> A ----------------- B
>                              B'
> 
> Diameter client A is talking with server B. If B fails while A is 
> exchanging  messages with it, A will have to wait for the next watchdog
> timer to fire to probe the connection, and then wait for another
> watchdog timeout before it fails over to B'.

I think you are correct. In the proposed solution to #334, the timer is
reset on receipt of a response. So if B dies after the last response, then
A's timer will fire Tw after that, send a watchdog and then fail over
after another Tw. Whereas under the -06 algorithm, the next request would
have simultaneously reset the timer and set the "pending" flag, so that
failover would occur after Tw. 

I think the performance of both algorithms is roughly the same for a very
unloaded network, since that would mean that watchdog responses would
cause resetting of the timers and failover should occur within a single
Tw. 

> Of course, if the watchdog timeout is long enough or the client is 
> sending lots of traffic, the transport will probably have already detected 
> failure and closed the connection. So the actual impact of the proposed
>change on the example above probably isn't terribly significant - I'm OK
>with the change.
> 
> Jonathan

It does change how one might wish to set the TWINIT value, though. For
example, if you always wanted 30 second failover, setting TWINIT=30
seconds would get you that under the -06 algorithm, whereas on a heavily
loaded network without proxies, you might need to set TWINIT=15 seconds
with the -07 algorithm to get the same kind of performance. I'm not sure
this is all that significant, though it is probably worth describing what
the performance will be. 

I'm also OK with the change overall, because I think that decoupling
failover on one hop from problems down the line is pretty important. With
the old algorithm, it seems like you could get cascading instability.