• Andres Freund's avatar
    Don't delay replication for less than recovery_min_apply_delay's resolution. · 87cec51d
    Andres Freund authored
    Recovery delays are implemented by waiting on a latch, and latches take
    milliseconds as a parameter. The required amount of waiting was computed
    using microsecond resolution though and the wait loop's abort condition
    was checking the delay in microseconds as well.  This could lead to
    short spurts of busy looping when the overall wait time was below a
    millisecond, but above 0 microseconds.
    
    Instead just formulate the wait loop's abort condition in millisecond
    granularity as well. Given that that's recovery_min_apply_delay
    resolution, it seems harmless to not wait for less than a millisecond.
    
    Backpatch to 9.4 where recovery_min_apply_delay was introduced.
    
    Discussion: 20150323141819.GH26995@alap3.anarazel.de
    87cec51d
xlog.c 340 KB