superlifter design notes and rZync feedback

Wayne Davison wayned at
Sat Jul 20 10:41:02 EST 2002

On Thu, 18 Jul 2002, Ben Escoto wrote:
> >>>>> "WD" == Wayne Davison <wayned at>
> >>>>> wrote the following on Thu, 18 Jul 2002 10:19:40 -0700 (PDT)
>   WD> Re: rzync's name cache.  I've revamped it to be a very
>   WD> dependable design that no longer depends on lock-step
>   WD> synchronization in the expiration of old items (just in the
>   WD> creation of new items, which is easy to achieve).
> Could you possibly explain this a little more?

This was something specific to my first name-cache design, so I doubt
that it affects anything else.  I had designed the first name-cache to
use of a repeating list (loop) of ID #s, so it had to skip old IDs that
were still allocated.  Combine this with the fact that new IDs spring
into existence on both sides of the transfer when a certain message is
sent/received, and this meant that both programs had to be in an
identical state for each independent allocator to behave identically
(and thus the expiration of old IDs had to occur in lock-step on both
sides of the connection).  I changed this to use a 64-bit, ever-
increasing ID #, and now it doesn't care if the timing of expiration
events is slightly different on each side of the connection since this
don't affect allocation events anymore.  An alternate way to go would
have been to add a "register ID" message, but my current test-protocol
is trying to be more byte-efficient than that.


More information about the rsync mailing list