OSDN Git Service

Implement new 'lightweight lock manager' that's intermediate between
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 29 Sep 2001 04:02:27 +0000 (04:02 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 29 Sep 2001 04:02:27 +0000 (04:02 +0000)
commit499abb0c0f21cb861c5af1d49a06469f3cfcc1eb
tree0af6262d9b6d1159315e93e90e69047b959ea5f5
parent818fb55ac49b4b20e65d9899fc1784e54e86db58
Implement new 'lightweight lock manager' that's intermediate between
existing lock manager and spinlocks: it understands exclusive vs shared
lock but has few other fancy features.  Replace most uses of spinlocks
with lightweight locks.  All remaining uses of spinlocks have very short
lock hold times (a few dozen instructions), so tweak spinlock backoff
code to work efficiently given this assumption.  All per my proposal on
pghackers 26-Sep-01.
46 files changed:
doc/src/sgml/wal.sgml
src/backend/access/transam/clog.c
src/backend/access/transam/varsup.c
src/backend/access/transam/xact.c
src/backend/access/transam/xlog.c
src/backend/bootstrap/bootparse.y
src/backend/bootstrap/bootstrap.c
src/backend/commands/vacuumlazy.c
src/backend/storage/buffer/README
src/backend/storage/buffer/buf_init.c
src/backend/storage/buffer/buf_table.c
src/backend/storage/buffer/bufmgr.c
src/backend/storage/buffer/freelist.c
src/backend/storage/freespace/freespace.c
src/backend/storage/ipc/ipc.c
src/backend/storage/ipc/ipci.c
src/backend/storage/ipc/shmem.c
src/backend/storage/ipc/sinval.c
src/backend/storage/ipc/sinvaladt.c
src/backend/storage/lmgr/Makefile
src/backend/storage/lmgr/README
src/backend/storage/lmgr/deadlock.c
src/backend/storage/lmgr/lock.c
src/backend/storage/lmgr/lwlock.c [new file with mode: 0644]
src/backend/storage/lmgr/proc.c
src/backend/storage/lmgr/s_lock.c
src/backend/storage/lmgr/spin.c
src/backend/storage/smgr/mm.c
src/backend/storage/smgr/smgr.c
src/backend/utils/init/postinit.c
src/backend/utils/misc/guc.c
src/backend/utils/misc/postgresql.conf.sample
src/include/access/clog.h
src/include/access/transam.h
src/include/miscadmin.h
src/include/storage/buf_internals.h
src/include/storage/freespace.h
src/include/storage/ipc.h
src/include/storage/lock.h
src/include/storage/lwlock.h [new file with mode: 0644]
src/include/storage/proc.h
src/include/storage/s_lock.h
src/include/storage/shmem.h
src/include/storage/sinval.h
src/include/storage/smgr.h
src/include/storage/spin.h