[cfe-dev] file exchange protocol in clang/distcc
kremenek at apple.com
Sat May 31 14:24:37 CDT 2008
On May 31, 2008, at 4:37 AM, Peter Neumark wrote:
> 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
> any opinion ?
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
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.
More information about the cfe-dev