IMAP server concurrency strategies

IMAP server concurrency strategies

Post by Paul Rubi » Thu, 18 Sep 2003 23:37:31

I'm wondering how different IMAP servers deal with concurrent client
connections. What kind of server would a midsized ISP use and how
many simultaneous connections would it typically have? How long does
a typical client session last? I'm wondering if the obvious strategy
of just forking a new process for each client is reasonable under
Linux (it's probably unreasonable under Windows, but I don't care
about that).

Anyone know how the more widely used servers (UW, Courier, etc.)
handle this?


IMAP server concurrency strategies

Post by Mark Crisp » Fri, 19 Sep 2003 01:00:41

On Wed, 17 Sep 2003, it was written:

It depends upon how you define "midsized"...

As a data point, each of our central IMAP server boxes has hundreds of
simultaneous IMAP connections at any one time. With some work that we're
doing, each box should be able to handle quite a bit more.

This depends upon the client. Clients which treat IMAP like a glorified
POP, and some web-based clients, may have connections measured in the
seconds. Better clients (such as Pine) and better web-based clients may
have connections measured in the hours or even multiple days.

Forking is reasonable under Linux, but is only necessary if you intend
that the fork logs in as the user (hence has a separate UID). If you
don't do that, then it's alright to thread if you're willing to deal with
the usual issues of threading.

-- Mark --
Science does not emerge from voting, party politics, or public debate.
Si vis pacem, para bellum.