We’ve just released 3.1 revision 4 of our e-mail gateway, with the main feature being a targeted performance boost.
Earlier optimisations were mainly focused on making parts of the system faster, whereas our recent efforts focused on certain common scenarios. Because the system consists of a large number of components (anti-spam, anti-virus, SMTP, database, etc) we found that pretty large performance gains could be achieved by redistributing resources (CPU, memory, I/O) to where they made the most difference. By focusing on the most common configurations, we’ve added “shortcuts” or “short circuit” that has made certain setups twice as fast.
One such scenario is the reject performance; by skipping steps that would anyway be discarded by the rejection. One example is the transaction safety (ACID compliance) that requires a buffer/cache synchronisation, which is bypassed if we detect that the message will anyway be rejected. Another example is the stat() function where multiple counts are batched (1+1+1=3) in fixed intervals, significantly reducing the overhead.
That’s just a few of the over 100 changes that has been made. We hope our high-traffic customers enjoy the additional capacity that this release will bring.
Just in time for christmas, ho ho ho.