]> granicus.if.org Git - postgresql/commit
Adjust btree index build to not use shared buffers, thereby avoiding the
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 2 Jun 2004 17:28:18 +0000 (17:28 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 2 Jun 2004 17:28:18 +0000 (17:28 +0000)
commit2095206de13b3fc9643cac7eef8c0f51b56cb556
treea5347eda127bfbb2497de1d74f26663b89f20d67
parent4d0e47d5a9482651007f946228381d3fa0141181
Adjust btree index build to not use shared buffers, thereby avoiding the
locking conflict against concurrent CHECKPOINT that was discussed a few
weeks ago.  Also, if not using WAL archiving (which is always true ATM
but won't be if PITR makes it into this release), there's no need to
WAL-log the index build process; it's sufficient to force-fsync the
completed index before commit.  This seems to gain about a factor of 2
in my tests, which is consistent with writing half as much data.  I did
not try it with WAL on a separate drive though --- probably the gain would
be a lot less in that scenario.
src/backend/access/nbtree/nbtpage.c
src/backend/access/nbtree/nbtree.c
src/backend/access/nbtree/nbtsort.c
src/backend/access/nbtree/nbtxlog.c
src/backend/storage/smgr/md.c
src/backend/storage/smgr/smgr.c
src/include/access/nbtree.h
src/include/storage/smgr.h