Using spamd instead of Perl module (was RE: [Mimedefang] Bayes locking)

David F. Skoll dfs at roaringpenguin.com
Wed Oct 6 14:10:44 EDT 2004


On Wed, 6 Oct 2004 Matthew.van.Eerde at hbinc.com wrote:

> This lends itself to my "using spamc/spamd from MIMEDefang"
> question.  Adding MySQL support or PostgreSQL support further inflates
> an already large Mail::SpamAssassin object.

Not by that much.  The client library code (pgsql.so in the case of
PostgreSQL) is shared, and compared to the rest of SpamAssassin, it's
tiny.

> When the largest thing in a MIMEDefang slave is the SpamAssassin
> object, the idea of factoring it out comes to my mind.  Instead of ten
> active MIMEDefang slaves, each hoarding their own private SpamAssassin
> object, consider twenty active MIMEDefang slaves - each calling spamc
> to connect to a pool of five running spamd daemons.

This might be a good idea.  I wouldn't fork/exec spamc, but rather implement
the SA client-server protocol directly in Perl (I don't think it's
all that complex.)  Now that spamd has a preforked model, it might work
quite well.

> It would interest me to see some real-world statistics on what
> percentage of the time a given MIMEDefang slave spends in:

I have statistics for CanIt, and I can tell you that over 90% of the average
slave's busy time is spent inside SpamAssassin (or in our case, doing
DB queries.)  This is pretty consistent over hundreds of customers.

Regards,

David.



More information about the MIMEDefang mailing list