diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2001-02-26 00:50:08 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2001-02-26 00:50:08 +0000 |
commit | 9c9936587c6a9aeb8b425a499cf73e5e7af38ddd (patch) | |
tree | f1d7328907a9ffb8a9319b689a9bb40f7e1d0313 /src/include | |
parent | 60774e821060dd6d6395504d4ccda107d2a71a42 (diff) | |
download | postgresql-9c9936587c6a9aeb8b425a499cf73e5e7af38ddd.tar.gz postgresql-9c9936587c6a9aeb8b425a499cf73e5e7af38ddd.zip |
Implement COMMIT_SIBLINGS parameter to allow pre-commit delay to occur
only if at least N other backends currently have open transactions. This
is not a great deal of intelligence about whether a delay might be
profitable ... but it beats no intelligence at all. Note that the default
COMMIT_DELAY is still zero --- this new code does nothing unless that
setting is changed.
Also, mark ENABLEFSYNC as a system-wide setting. It's no longer safe to
allow that to be set per-backend, since we may be relying on some other
backend's fsync to have synced the WAL log.
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/access/xlog.h | 7 | ||||
-rw-r--r-- | src/include/storage/proc.h | 6 | ||||
-rw-r--r-- | src/include/storage/sinval.h | 4 |
3 files changed, 13 insertions, 4 deletions
diff --git a/src/include/access/xlog.h b/src/include/access/xlog.h index 47e14c3a827..c17bf32cc55 100644 --- a/src/include/access/xlog.h +++ b/src/include/access/xlog.h @@ -3,7 +3,7 @@ * * PostgreSQL transaction log manager * - * $Header: /cvsroot/pgsql/src/include/access/xlog.h,v 1.17 2001/01/14 05:08:16 tgl Exp $ + * $Header: /cvsroot/pgsql/src/include/access/xlog.h,v 1.18 2001/02/26 00:50:07 tgl Exp $ */ #ifndef XLOG_H #define XLOG_H @@ -146,4 +146,9 @@ extern void ShutdownXLOG(void); extern void CreateCheckPoint(bool shutdown); extern void SetThisStartUpID(void); +/* in storage/ipc/sinval.c, but don't want to declare in sinval.h because + * we'd have to include xlog.h into that ... + */ +extern XLogRecPtr GetUndoRecPtr(void); + #endif /* XLOG_H */ diff --git a/src/include/storage/proc.h b/src/include/storage/proc.h index 4dd5a8c2a67..6290e83d50f 100644 --- a/src/include/storage/proc.h +++ b/src/include/storage/proc.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: proc.h,v 1.39 2001/01/25 03:31:16 tgl Exp $ + * $Id: proc.h,v 1.40 2001/02/26 00:50:08 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -50,6 +50,10 @@ struct proc * were starting our xact: vacuum must not * remove tuples deleted by xid >= xmin ! */ + /* XLOG location of first XLOG record written by this backend's current + * transaction. If backend is not in a transaction or hasn't yet modified + * anything, logRec.xrecoff is zero. + */ XLogRecPtr logRec; /* Info about lock the process is currently waiting for, if any. */ diff --git a/src/include/storage/sinval.h b/src/include/storage/sinval.h index 1b04bcec900..93a10e72feb 100644 --- a/src/include/storage/sinval.h +++ b/src/include/storage/sinval.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: sinval.h,v 1.17 2001/01/24 19:43:28 momjian Exp $ + * $Id: sinval.h,v 1.18 2001/02/26 00:50:08 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -30,6 +30,6 @@ extern void InvalidateSharedInvalid(void (*invalFunction) (), extern bool DatabaseHasActiveBackends(Oid databaseId, bool ignoreMyself); extern bool TransactionIdIsInProgress(TransactionId xid); extern void GetXmaxRecent(TransactionId *XmaxRecent); - +extern int CountActiveBackends(void); #endif /* SINVAL_H */ |