[distcc] Proposed distcc protocol change to support caching

Jake McGuire jake at boom.net
Wed Feb 15 04:11:32 GMT 2006


On Feb 13, 2006, at 5:28 PM, Dan Kegel wrote:
> We're prototyping adding caching to distcc/distccd.

Excellent!

> distcc protocol version 3 would have the client
> send a new packet, OPTS, after the DIST packet.
> OPTS would encode options as bits in the 64 bit argument.
> The following option bits would be defined:

*snip*

Summary: Why not aim higher?  Protocol changes happen infrequently,  
or at least they should, so if we can stick in some other stuff that  
we think is going to be useful down the road.

Details: Why use a binary encoding?  Network traffic at this point is  
pretty cheap, especially one-way data, as is the minor amount of CPU  
time to process some text.  Bitfields just add the potential for  
endian screwups and make some sorts of processing more complicated.

How about:

Commands starting with '?' are optional, and require ack/nack.  Like ? 
HSH for hashed source code.

Commands starting with '+' are optional and should be silently  
ignored if not supported.  Like, say, if someone wanted to make  
distccd report statistics like cache hits, or wanted distcc to flush  
the object cache

Also... not sure what your build traffic looks like, but it's  
probably worthwhile to put a placeholder in the cache when  
compilation starts so that if there's a "hit" it only gets compiled  
once.

-jake


More information about the distcc mailing list