aboutsummaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2001-02-26 00:50:08 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2001-02-26 00:50:08 +0000
commit9c9936587c6a9aeb8b425a499cf73e5e7af38ddd (patch)
treef1d7328907a9ffb8a9319b689a9bb40f7e1d0313 /src/include
parent60774e821060dd6d6395504d4ccda107d2a71a42 (diff)
downloadpostgresql-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.h7
-rw-r--r--src/include/storage/proc.h6
-rw-r--r--src/include/storage/sinval.h4
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 */