mirror of
https://github.com/postgres/postgres.git
synced 2025-08-25 20:23:07 +03:00
Replace the BufMgrLock with separate locks on the lookup hashtable and
the freelist, plus per-buffer spinlocks that protect access to individual shared buffer headers. This requires abandoning a global freelist (since the freelist is a global contention point), which shoots down ARC and 2Q as well as plain LRU management. Adopt a clock sweep algorithm instead. Preliminary results show substantial improvement in multi-backend situations.
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.151 2005/02/26 18:43:33 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.152 2005/03/04 20:21:05 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -339,7 +339,7 @@ createdb(const CreatedbStmt *stmt)
|
||||
* up-to-date for the copy. (We really only need to flush buffers for
|
||||
* the source database, but bufmgr.c provides no API for that.)
|
||||
*/
|
||||
BufferSync(-1, -1);
|
||||
BufferSync();
|
||||
|
||||
/*
|
||||
* Close virtual file descriptors so the kernel has more available for
|
||||
@@ -1201,7 +1201,7 @@ dbase_redo(XLogRecPtr lsn, XLogRecord *record)
|
||||
* up-to-date for the copy. (We really only need to flush buffers for
|
||||
* the source database, but bufmgr.c provides no API for that.)
|
||||
*/
|
||||
BufferSync(-1, -1);
|
||||
BufferSync();
|
||||
|
||||
#ifndef WIN32
|
||||
|
||||
|
Reference in New Issue
Block a user