• Heikki Linnakangas's avatar
    Avoid acquiring spinlock when checking if recovery has finished, for speed. · 1a3d1044
    Heikki Linnakangas authored
    RecoveryIsInProgress() can be called very frequently. During normal
    operation, it just checks a backend-local variable and returns quickly,
    but during hot standby, it checks a spinlock-protected shared variable.
    Those spinlock acquisitions can become a point of contention on a busy
    hot standby system.
    
    Replace the spinlock acquisition with a memory barrier.
    
    Per discussion with Andres Freund, Ants Aasma and Merlin Moncure.
    1a3d1044
xlog.c 342 KB