[sheepdog] fix embryonic connection

Liu Yuan namei.unix at gmail.com
Tue Sep 4 11:08:40 CEST 2012


On 09/04/2012 04:56 PM, MORITA Kazutaka wrote:
> If it works well, it's okay to me for now.  But, in future, I'd like
> to consider removing TCP keepalive.  If the target node is in the
> sheepdog node list, sheep should keep the connection even if timeout
> is fired.  If the target is not in the node list, sheep should close
> the connection ASAP.  

This sounds feasible to me. But I have no idea if this will be better
design until the code comes up. I guess this change will push complexity
to sockfd cache and the sockfd usage in gateway code.

The check of availability should be done by
> cluster drivers.  That's the reason I suggested "retry poll while
> epoch is not updated".

I am not against removing keepalive, because we have met these
undocumented problems, who ever know we'll meet yet another one. But
before removing it, I'd like see a better design: either simpler code or
efficient new mechanism.

But as for this patch set, one bug is for keepalive, another is for
connect(), which exist in sheepdog for ages.

Thanks,
Yuan



More information about the sheepdog mailing list