This series makes the core of the pull programs parallel. It should not 
actually make any difference yet. It arranges to call prefetch() for each 
object as soon as it is determined to be needed, and then call fetch() on 
each object once there is nothing left to prefetch. By implementing 
prefetch(), an implementation can make additional requests while waiting 
for the data from the earlier ones to come in. Additionally, fetch() will 
be called in the same order that prefetch() was called, so the 
implementation can just make a series of requests and get responses.

If anyone else is also interested in working on this, it could go into 
-pu; I've tested it reasonably well, and I'm pretty sure that it doesn't 
have any effect until the implementations are changed to have prefetch() 
do something. I'm working on support for it in ssh-pull, and haven't 
started looking at http-pull support.

 1: Adds support to the struct object code to produce struct objects when 
    the type is unknown and the content is unavailable; this allocates 
    memory for the union of the supported types, so it is slightly less 
    efficient, but allows the pull code to track objects it doesn't know 
    anything about (such as the targets to tags).
 2: Parallelizes the pull algorithm.

        -Daniel
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to