• Peter Eisentraut's avatar
    Wait between tablesync worker restarts · e3cf7080
    Peter Eisentraut authored
    Before restarting a tablesync worker for the same relation, wait
    wal_retrieve_retry_interval (currently 5s by default).  This avoids
    restarting failing workers in a tight loop.
    
    We keep the last start times in a hash table last_start_times that is
    separate from the table_states list, because that list is cleared out on
    syscache invalidation, which happens whenever a table finishes syncing.
    The hash table is kept until all tables have finished syncing.
    
    A future project might be to unify these two and keep everything in one
    data structure, but for now this is a less invasive change to accomplish
    the original purpose.
    
    For the test suite, set wal_retrieve_retry_interval to its minimum
    value, to not increase the test suite run time.
    Reviewed-by: default avatarPetr Jelinek <petr.jelinek@2ndquadrant.com>
    Reported-by: default avatarMasahiko Sawada <sawada.mshk@gmail.com>
    e3cf7080
004_sync.pl 6.07 KB