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
