> My rough guess (see grep | wc above) is 7000 deliveries per hour.
About 2 a second, that's not huge, but it's starting to get busy when
you have to invoke multiple programs and establish a socket each time
to your database.
> I see "status: local 10/10" a lot. It goes back down in a few seconds,
> then can come back up in a few seconds too. (Should I increase
> concurrencylocal?)
No. quite the opposite if anything. Think of concurrencylocal as a
peak load that you want qmail to impose on your database - or your
local file system for that matter.
Do you really want to have more than 10 concurrent connections to your
database? Better to keep that number safely within the capabilities of
your system.
I suspect that 10 is a good starting point for your delivery rates and
it's much better to have an occassional local delivery delayed than to
grind your database into dust.
> |forward `database-lookup $RECIPIENT`
>
> where database-lookup is a simple C program that connects to MySQL, looks
> up the recipient in the database, and prints it to standard output.
>
> This would be easy to write. It might not be as efficient as fastforward
> due to having to open a new connection to MySQL every time, but if it's
> "efficient enough" I think it's better because then (1) the database is
> always in perfect synch and (2) I don't have to worry about cron jobs to
> synchronize the fastforward db with the MySQL db. I'll have to try it and
> see what happens.
That sounds like a good plan.
Regards.