Thread (7 messages) 7 messages, 3 authors, 2016-06-15

Re: [RFC PATCH v2] fetch-pack: log(n)-transmission find_common()

flat view

From: Nicolas Pitre <hidden>
Date: 2016-06-15 22:45:31

On Thu, 23 Oct 2008, Thomas Rast wrote:
Replaces the existing simple history search with a more sophisticated
algorithm:

1) Walk history with exponentially increasing stride lengths; i.e.,
   send the 1st commit, then the 2nd after that, then the 4th after
   that, and so on.

2) Bisect the resulting intervals.

Combined with tracking the "outstanding haves" so that we can detect
which sha1s were never ACKed by upload-pack (and hence not common),
this gives O(log(n)) required "have" lines.

Unfortunately this cannot work if the server sends fake ACKs, so we
introduce a capability 'exp-stride' which instructs upload-pack to
disable ok_to_give_up().  (Which incidentally saves the server a lot
of work.)

Signed-off-by: Thomas Rast <redacted>

---

This is a simple resend of v2, in the hope of attracting some
discussion or at least encouraging words this time around.
OK, I gave this a quick try, and fetch operations appear to make their 
mind about what to do quicker.  Some fetch requests which used to take 
up to 5 seconds are somewhat faster.  I have no formal measurements 
though.


Nicolas
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help