Thread: pgsql: HS Defer buffer pin deadlock check until deadlock_timeout has

pgsql: HS Defer buffer pin deadlock check until deadlock_timeout has

From
sriggs@postgresql.org (Simon Riggs)
Date:
Log Message:
-----------
HS Defer buffer pin deadlock check until deadlock_timeout has expired.
During Hot Standby we need to check for buffer pin deadlocks when the
Startup process begins to wait, in case it never wakes up again. We
previously made the deadlock check immediately on the basis it was
cheap, though clearer thinking and prima facie evidence shows that
was too simple. Refactor existing code to make it easy to add in
deferral of deadlock check until deadlock_timeout allowing a good
reduction in deadlock checks since far few buffer pins are held for
that duration. It's worth doing anyway, though major goal is to
prevent further reports of context switching with high numbers of
users on occasional tests.

Modified Files:
--------------
    pgsql/src/backend/storage/ipc:
        standby.c (r1.23 -> r1.24)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/ipc/standby.c?r1=1.23&r2=1.24)
    pgsql/src/backend/storage/lmgr:
        proc.c (r1.218 -> r1.219)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/lmgr/proc.c?r1=1.218&r2=1.219)
    pgsql/src/include/storage:
        proc.h (r1.121 -> r1.122)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/storage/proc.h?r1=1.121&r2=1.122)