Hello! On Sat, Jul 02, 2005 at 11:04:34AM +0800, Jeffrey Lim wrote: >how about the mail store then? I suppose there'll have to be some >coordinated (and "thread-friendly") back-end mail store in place for >these front-end mail servers (*i'm assuming simplistic load-balancing >here - at the tcp level, rather than at the application level, or >splitting via userid, so that the different userids are actually >assigned to different mailstores).
Splitting via userid would be the simplest thing. Developping a robust distributed mail storage system is more complicated (been there, done that). However, for that you don't need "thread-friendly". The thing I developped (sorry, closed source) consists of a few processes per node only, perusing select() heavily for multiplexing. Ok, there's support for pseudo-parallel I/O, using *fork*ed I/O helper processes and socketpairs. But as said, doing such a thing is very complicated, but it works quite ok in-between (after say 3 or 4 years of development), supporting millions of users with about 80 nodes, capable of supporting IMAP, too (with quite correct handling of IMAP's \Recent-flag, too, which is a beast by itself). >-jf Kind regards, Hannah.