Thread: pgsql: Simplify lock manager data structures by making a clear

pgsql: Simplify lock manager data structures by making a clear

From
tgl@postgresql.org (Tom Lane)
Date:
Log Message:
-----------
Simplify lock manager data structures by making a clear separation between
the data defining the semantics of a lock method (ie, conflict resolution
table and ancillary data, which is all constant) and the hash tables
storing the current state.  The only thing we give up by this is the
ability to use separate hashtables for different lock methods, but there
is no need for that anyway.  Put some extra fields into the LockMethod
definition structs to clean up some other uglinesses, like hard-wired
tests for DEFAULT_LOCKMETHOD and USER_LOCKMETHOD.  This commit doesn't
do anything about the performance issues we were discussing, but it clears
away some of the underbrush that's in the way of fixing that.

Modified Files:
--------------
    pgsql/contrib/userlock:
        user_locks.c (r1.19 -> r1.20)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/contrib/userlock/user_locks.c.diff?r1=1.19&r2=1.20)
    pgsql/src/backend/storage/ipc:
        ipci.c (r1.79 -> r1.80)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/ipc/ipci.c.diff?r1=1.79&r2=1.80)
    pgsql/src/backend/storage/lmgr:
        README (r1.17 -> r1.18)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/lmgr/README.diff?r1=1.17&r2=1.18)
        deadlock.c (r1.36 -> r1.37)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/lmgr/deadlock.c.diff?r1=1.36&r2=1.37)
        lmgr.c (r1.79 -> r1.80)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/lmgr/lmgr.c.diff?r1=1.79&r2=1.80)
        lock.c (r1.160 -> r1.161)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/lmgr/lock.c.diff?r1=1.160&r2=1.161)
        proc.c (r1.168 -> r1.169)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/lmgr/proc.c.diff?r1=1.168&r2=1.169)
    pgsql/src/backend/utils/adt:
        lockfuncs.c (r1.20 -> r1.21)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/lockfuncs.c.diff?r1=1.20&r2=1.21)
    pgsql/src/backend/utils/cache:
        relcache.c (r1.232 -> r1.233)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/relcache.c.diff?r1=1.232&r2=1.233)
    pgsql/src/include/storage:
        lmgr.h (r1.52 -> r1.53)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/storage/lmgr.h.diff?r1=1.52&r2=1.53)
        lock.h (r1.91 -> r1.92)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/storage/lock.h.diff?r1=1.91&r2=1.92)
    pgsql/src/tools/backend:
        index.html (r1.33 -> r1.34)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/tools/backend/index.html.diff?r1=1.33&r2=1.34)