Leif Jackson wrote:

Ok, so you are using thread pools to implement persistent connections.
I would still like to hear more details about the "60% speedup"  of the
threaded pop3 daemon vs the non-threaded.  Exactly what was 60% faster?
I still think that the Multi-Process Model can be just as effective as a
threaded  model with the benefit of simplified code.
Yeah, the overhead of fork and not having to have shared memory segments
is where i see the speedup. I belive the rest of the speedup comes from
chaning out Glist and some other things. But I have some neat things up my
sleave..etc. I accualy think I just found a faster mime parser that is
GPL'ed than GMime. it is stable and well tested as well as thread-safe
which GMime may or maynot be acording to thier docs...etc. I will see what
I feel like when I get to that point.. :) The other library is called EPS:

http://www.inter7.com/index.php?page=eps

I guess the mime stuff is a RFC...etc.
Interesting, I look forward to hearing about this new parser. I'm sure there is room for improvement in our parsing routines. While the overhead of creating a new thread is less than the overhead of calling fork, I still don't think this will buy us much since the fork call typically doesn't account for a significant percentage of the work done after connection, and even if it did, preforking can handle a lot of this. Again there is a distinction between the workload a light http server that doesn't to much thinking vs. an IMAP server that does a lot of work during the average connection so as to make the fork overhead negligible.

As for the overhead of shared memory segments, I claim no expertiece here, but I'm surprised to hear that this is a performance bottleneck. Are you sure?

Yeah I know not thinking that at all, I am doing it for someone else
weather or not the dbmail developers decied to use any or all of it. So it
works out for all of us :) You can thank my customer more they are the
ones paying me to fiddle with it :P

Well I would think I speak for the whole community when I say that we would like to benefit from you work :-). One general comment which I think was alluded to earlier in this thread. If you want to get some of this applied, I think it best to separate out different parts of the patch. It may not make sense for you right now if you are trying to throw together a proof of concept but in the long run all the GMime changes etc, should probably be made separate from the threading changes.

Reply via email to