Sage Weil wrote:
One question about the choice of UDP. I'm not sure how closely you're following the chubby design.. but if it's a similar liveness/notification model, the server is delaying keepalive rpc responses and piggybacking notification of updates. If the replies are lossy, are you just planning on a conservative client timeout/retry, and keeping the normal keepalive round trip a healthy factor shorter than the client lease length? Shorter timeouts mean higher server load (more frequent keepalives)... and longer timeouts mean frequent stalls on writes when doing the cache invalidation if there is any packet loss on the network...

In general, I'm not trying to closely follow the Chubby paper.

I was mainly inspired by it's general design -- that of a filesystem.

But several implementation choices described by Google make a lot of technical sense for CLD, so you see a lot of commonality.


At present, the algorithm is as follows:

        * for all client events, send immediately
        * if we haven't heard from the client in LEASE TIME / 2,
          ping them

However, once we have sent _any_ packet to the client, be it a response, asynchronous event or ping, we wait for a client acknowledgement.

If we do not receive an ack after CLD_RETRY_START (2) seconds, we
        - resend packet
        - set next-retry timer *= 2

So, retry #2 from server->client comes 4 seconds after retry #1.
Retry #3 comes 8 seconds after retry #2.

And so on, until the client lease expires.

That is definitely different from Chubby.

Is it wise? Unknown. This was a design chosen for simplicity, and may need to be revisited once caching (and strict cache coherence) is implemented in the client and server.

Comments and criticism (and patches!) welcome. The CLD network protocol is not yet "solid" in my opinion. Ignoring the lack of caching, master fail-over, large messages and sequence ids also need additional attention.

        Jeff



--
To unsubscribe from this list: send the line "unsubscribe hail-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to