[cfe-dev] file exchange protocol in clang/distcc

Ted Kremenek kremenek at apple.com
Sat May 31 12:24:37 PDT 2008


On May 31, 2008, at 4:37 AM, Peter Neumark wrote:

> Hi!
> I'd like to discuss about file exchange method for clang/discc. I'd  
> like to use ssh protocol, because it is a standard and supports  
> authentication.
> any opinion ?

Hi Peter,

I think it depends on your goals.  Consider the following points:

1) Should a user require full account access on a remote machine in  
order to use it for distcc?  Is this absolutely necessary?  What are  
the tradeoffs?  Having a "distcc" account on  remote machine that is  
dedicated for the purpose of doing remote compiles isn't necessarily a  
bad thing, as it isolates access of resources.  There is an  
administrative cost, however, of setting up an account and installing  
ssh keys on every single machine.  In order to make clang-distcc  
useful, we probably want low administrative overhead to lower the  
administrative cost of using it.

What does the standard distcc do?

2) There is a high cost of initiating the ssh connection (a key  
exchange has to be done using cryptography primitives that are  
typically more expensive to use that the ciphers used by ssh to  
encrypt data).  Do you plan on keeping an ssh connection open  
throughout the compilation of a source file(s) on a remote host?  This  
answer to this question directly effects scalability.  Keeping a bunch  
of connections open is also a scalability concern.  I'm not an expert  
on distributed network protocols, so hopefully someone else has more  
insight here.

3) Encrypting data that does not need to be encrypted wastes a non- 
negligible amount of CPU cycles, both on the sender and the receiver.   
This has immediate ramifications on scalability, as you rob precious  
cycles from potentially other compilation jobs.

Ted



More information about the cfe-dev mailing list