• Alvaro Herrera's avatar
    Don't balance vacuum cost delay when per-table settings are in effect · 1021bd6a
    Alvaro Herrera authored
    When there are cost-delay-related storage options set for a table,
    trying to make that table participate in the autovacuum cost-limit
    balancing algorithm produces undesirable results: instead of using the
    configured values, the global values are always used,
    as illustrated by Mark Kirkwood in
    http://www.postgresql.org/message-id/52FACF15.8020507@catalyst.net.nz
    
    Since the mechanism is already complicated, just disable it for those
    cases rather than trying to make it cope.  There are undesirable
    side-effects from this too, namely that the total I/O impact on the
    system will be higher whenever such tables are vacuumed.  However, this
    is seen as less harmful than slowing down vacuum, because that would
    cause bloat to accumulate.  Anyway, in the new system it is possible to
    tweak options to get the precise behavior one wants, whereas with the
    previous system one was simply hosed.
    
    This has been broken forever, so backpatch to all supported branches.
    This might affect systems where cost_limit and cost_delay have been set
    for individual tables.
    1021bd6a
autovacuum.c 87.1 KB