On 11/17/2010 04:34 PM, Amos Jeffries wrote:
On Wed, 17 Nov 2010 16:20:02 -0700, Alex Rousskov
<[email protected]>  wrote:
On 11/17/2010 04:12 PM, Amos Jeffries wrote:
* creates namespace Comm::IO for the read and write functionality to
exist.

Do we really need the Io sub-namespace? What Comm[unication] namespace
parts are not about I/O? For example, all code already in src/comm/,
and

pretty much everything in comm.cc is also about I/O. If you are not
sure, let's drop the Io namespace from Comm.

For the record  comm.cc currently handles read IO, write IO, FD
management, event queues, socket opening, delay pool queueing,
destination
DNS resolving. It is slightly unclear how much of that will remain in
comm
layer and how much will be pushed out into better scopes.

In your list, only the DNS resolution seems out of Comm scope to me.

I'm thinking also the FD stuff is a separate scope lower than comm, which
the rest of the code goes through comm to get to. I may be fully wrong and
it turns out to be just an fde class scope.

Yes, it is possible that FD stuff should be isolated, but if one has to use Comm and only Comm to use FD++, then perhaps there is no need for that lower layer.

The read delay pools stuff can probably be split a bit like the new client
write pools. Data queued in higher scopes with comm doing only the low
level switching and IO parts.

We are getting far out of scope here, but I think the client write pools are pretty tightly integrated with Comm. I actually tried to isolate them at first, but found that it would make things worse: The Comm caller does not care how [fast] Comm writes something. It keeps the caller simple.

Also, small bandwidth limits need tight integration with Comm for performance reasons -- it costs a lot of CPU cycles to notify somebody far away that a few more bytes were written, just to hear an "oh, fine, keep going" response.

Where to keep general pools configuration is a separate question. It is not clear whether client_db belongs to Comm.

Cheers,

Alex.

Reply via email to