• R
    Create a "fast path" for acquiring weak relation locks. · 3cba8999
    Robert Haas 提交于
    When an AccessShareLock, RowShareLock, or RowExclusiveLock is requested
    on an unshared database relation, and we can verify that no conflicting
    locks can possibly be present, record the lock in a per-backend queue,
    stored within the PGPROC, rather than in the primary lock table.  This
    eliminates a great deal of contention on the lock manager LWLocks.
    
    This patch also refactors the interface between GetLockStatusData() and
    pg_lock_status() to be a bit more abstract, so that we don't rely so
    heavily on the lock manager's internal representation details.  The new
    fast path lock structures don't have a LOCK or PROCLOCK structure to
    return, so we mustn't depend on that for purposes of listing outstanding
    locks.
    
    Review by Jeff Davis.
    3cba8999
lockfuncs.c 19.1 KB