• Tom Lane's avatar
    Move isolationtester's is-blocked query into C code for speed. · 511540da
    Tom Lane authored
    Commit 4deb4138 modified isolationtester's query to see whether a
    session is blocked to also check for waits occurring in GetSafeSnapshot.
    However, it did that in a way that enormously increased the query's
    runtime under CLOBBER_CACHE_ALWAYS, causing the buildfarm members
    that use that to run about four times slower than before, and in some
    cases fail entirely.  To fix, push the entire logic into a dedicated
    backend function.  This should actually reduce the CLOBBER_CACHE_ALWAYS
    runtime from what it was previously, though I've not checked that.
    
    In passing, expose a SQL function to check for safe-snapshot blockage,
    comparable to pg_blocking_pids.  This is more or less free given the
    infrastructure built to solve the other problem, so we might as well.
    
    Thomas Munro
    
    Discussion: https://postgr.es/m/20170407165749.pstcakbc637opkax@alap3.anarazel.de
    511540da
predicate.c 158 KB