On Wed, Jan 18, 2012 at 3:21 PM, Camille Fournier <c...@renttherunway.com> 
wrote:
> Duh, I knew there was something I was forgetting. You can't process the
> session timeout faster than the server can process the full pipeline, so
> making pings come back faster just means you will have a false sense of
> liveness for your services.

There's also this - we only send HBs when the client is not active.
HBs check that the server is alive but at the same time we're also
letting the server know that we're alive.

However, when the client is active (sending read/write ops) we don't
need a HB. Any read/write operation serves as the HB. Say we send a
read operation to the server, we won't send another HB to the server
until the read operation result comes back (and then 1/3 the timeout
after that). In this case you can't take advantage of the hack that's
been discussed. The read operation needs to complete, if it takes too
long (as in this case) the session will timeout as usual. Now, if you
have clients that are largely inactive this may not matter too much,
but depending on the use case you might get caught by this.

Patrick

Reply via email to