RE: Locking and concurrency -- system considerations

Top Page
Delete this message
Reply to this message
Author: tcobb
Date:  
To: ph10, jon
CC: exim-users
Subject: RE: Locking and concurrency -- system considerations
These are the same needs that I have, too. I need to be able to scale
SMTP servers to handle ever-increasing load. I'm done with the BIGGER
BOX mentality and am moving my network over to redundant arrays of
role-servers (several smtp machines, several pop, etc.). The method
I'm testing now is round-robin DNSing for these, with alternated queue
runners as well.

A thought, if one can run two Exims on the same spool (one accepting
mail, the other running the queue) then at least queue-running on
alternate machines would be possible.

I've recently written a SQL database patch for lookups which scales well
(not quite ready for release -- working on the docs). I guess I'll look
into shareable spools now.

- T

> ----------
> From:     Jon Morby[SMTP:jon@???]
> Sent:     Wednesday, September 24, 1997 9:34 AM
> To:     Philip Hazel
> Cc:     exim-users@???
> Subject:     Re: Locking and concurrency -- system considerations 

>
>
> > > What about log files, spool files, and so on? Which items can
> safely
> > > be shared between multiple parallel (not just concurrent)
> instances of
> > > Exim executing on different hosts but sharing NFS space?
> (Presumably
> > > not *every* filestore object is locked by Exim before use, but
> that's
> > > OK as long as we know exactly which objects are and which aren't.)
> >
> > Log files are not locked. Exim always writes log entries as a single
>
> > write() to a file opened with O_APPEND. This won't work for an NFS
> file
> > opened by two different hosts.
>
> Individual logs isn't such a problem, although it would be nice to
> have a
> central logging daemon which collated all the logs (a la syslog, only
> more
> reliable) so you could have one large central log file.
>
> >
> > Spool files are locked using fcntl() while Exim is working on a
> message.
> > I hadn't ever thought of two different machines sharing the same
> spool.
> > Since the names of the spool files are generated using the pid of
> the
> > process that receives the message as well as the current time, they
> are
> > not globally unique and there will be a problem.
>
> In the environment I envisage running Exim shared spools are
> essential. The
> current system we have uniques the spool file by taking the numeric ID
> from
> the hostname and using that as well as the pid and current time.
>
> we have several machines (relay-1 -> relay-15 currently) all of which
> share
> one of two spools.
>
> Being restricted to one spool per delivery client would be a
> restriction I
> wouldn't like to have to live with.
>
> It would also be very useful to be able to share the retry/wait db's
> (probably
> essential).
>
> >
> > Essentially, the assumption is that each host has its own spool and
> log
> > files.
>
> Unfortunately this assumption doesn't scale particularly well :(
>
> (What happens when one of your relays goes down, and you've got a
> couple of
> thousand messages in it's queue?) The mail gets delayed until you can
> bring
> another box up and mount that spool. Unacceptable in todays market
> with
> consumers rather than techies coming onto the Net.
>
>
>
> -- 
> Jon Morby                                  mail: jon@???
> Fidonet/Internet Gateway                   http: www.fido.net

>
>
>
> --
> * This is sent by the exim-users mailing list.  To unsubscribe send a
>     mail with subject "unsubscribe" to exim-users-request@???
> * Exim information can be found at http://www.exim.org/

>


--
* This is sent by the exim-users mailing list.  To unsubscribe send a
    mail with subject "unsubscribe" to exim-users-request@???
* Exim information can be found at http://www.exim.org/