On Tue, Jan 25, 2011 at 12:46 AM, Ted Dunning <[email protected]> wrote: > On Mon, Jan 24, 2011 at 4:43 PM, Ilya Maykov <[email protected]> wrote: > >> Right, but I assume you could still see a race condition where the server >> just failed and zookeeper has not detected the failure yet. So zookeeper >> still thinks it's up, thus the client still thinks it's up, thus the client >> makes an RPC request that is doomed to fail :) >> > > Yes. That exists. > > The case where you select a server and it doesn't connect is a safe special > case. The client can just try another. > > The nastier issue, as you point out, is when the transaction starts but > doesn't complete. >
I suppose it would be left up to the client then to test whether a failed response actually completed... adding a fair amount of work to the client. Would zookeeper be able to "buffer" requests? For instance, if there were two nodes behind it and they were both momentarily unresponsive, could zookeeper (& the client) keep the connection active and wait for a node to signal itself available and complete the request? -- Phillip B Oldham [email protected] +44 (0) 7525 01 09 01
