Re: [Exim] Multiple MySQL databases and hosts

Top Page
Delete this message
Reply to this message
Author: Ollie Cook
Date:  
To: V. T. Mueller
CC: exim-users
Subject: Re: [Exim] Multiple MySQL databases and hosts
On Wed, Dec 05, 2001 at 02:59:47PM +0100, V. T. Mueller wrote:
> On Wed, 5 Dec 2001, Ollie Cook wrote:
> >  mysql_servers = host1::3306/database1/user1/password1\
> >                  host2::3306/database2/user2/password2
> > If the "domains" table is on host2 and the "users" table is on host1
> > when a mail arrives Exim will do three lookups:
> >   1)  DOMAINS lookup on host1 which will fail because that table
> >       doesn't exist on host1
> >   2)  DOMAINS lookup on host2 which will succeed if the domain
> >       is in the table on host2
> >   3)  USERS lookup on host1 if #2 succeeds
> > It seems wasteful to do query #1, here.

>
> This mechanism provides redundancy, which indeed is something very
> reasonable to do. If you experience performance issues, you can always
> buy faster hardware. What if one of your machines fail? It will cause the
> whole service to fail, because your design actually doubled the failure
> rate instead of decreasing it.
>
> The software's job is to offer smart and reliable means for
> implementation, and this is exactly what exim does.
>
> So I strongly oppose the change requested for v4 .
>
> Regards,
> Volker


Hi Volker,

You have a good point, but there is a happy medium:

 mysql_servers = set1/host1::3306/database1/user1/password1\
                 set1/backup-host1::3306/database1/user1/password1\
                 set2/host2::3306/database2/user2/password2\
                 set2/backup-host2::3306/database2/user2/password2


with, for example:

local_parts = mysql;set1;USERS

This would still allow for redundancy, but still cut down on the
erroneous connections to database which have no hope of answering
the query.

Yours,

Ollie

-- 
Oliver Cook    Systems Administrator, ClaraNET
ollie@???               020 7903 3065