some questions that weren't FAQs

russor@msoe.edu russor@msoe.edu
Wed, 26 Nov 2003 16:28:45 -0800 (PST)


[snip]

> But say there's a network glitch or something and the client on box A
thinks the server on box B is dead because it can't be reached.  So
cache lookups on box A for "foo:1234" will now go to server A, but
lookups on box B will still go to server B, won't they?  Does the client
on box A periodically check to see if server B has come back?
>

Short answer, yes.

Long answer. When it tries to store or load from a server, it will first
attempt to use an existing connection; if that isn't available, it will
then check if the host is in the dead server list, if it is, the client
will rehash and go back to the beginning of this sentance. If the server
isn't marked as dead, it will attempt to connect to it, if this fails,
it'll be marked as dead for 20 to 29 seconds (there's a randomization) and
the client wwill rehash and go back to the beginning of this paragraph.

There's a limit of something like 20 rehashes, i think, and when a host is
marked dead, it's specific host:ip is marked as well as just the host.  If
a connection is already made to another port on the same host, it isn't
going to be disconnected, just cause it's marked dead, it just won't be
reopened.