On 3/7/2013 2:17 PM, Alfredo Saldanha wrote:
>> The transport table is a critical table used by pretty much every
>>part of postfix (by way of the trivial_rewrite service).  If the
>>mysql database is unavailable, no mail will flow.  If the lookups
>>are slow, all postfix performance will suffer.
> 
> In case of mysql connection drop, Postfix doesn't use the last
> transport information ?
> And another stuffs that use MySQL, like virtual aliases, users, etc.
> the message will be rejected ?


If the transport table is unavailable, no mail will flow -- incoming
mail will be deferred, mail in the queue will be temp-failed.  There
is no cache[1].

The transport table is particularly performance sensitive because
it's used by the single-threaded trivial_rewrite service, which is
referenced by every part of postfix.  For a
high-volume/high-performance server, it is recommended that
transport tables use a local hash:, or better, cdb: file.  This
doesn't mean you can't use mysql, but it will require some care to
insure availability and performance.

As a general rule, when postfix references ANY table (not just
mysql), if that table is unavailable an error will be issued and
mail will be deferred until the table is again working.  But not all
tables are used by all postfix functions, and not all tables have
the same impact on performance as transport.


[1] there is a 1-element result cache to prevent postfix from
looking up the same key repeatedly.  This will not prevent table
errors, nor is it intended to.




  -- Noel Jones

Reply via email to