*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/access/transam/xact.c,v 1.126 2002/06/11 13:40:50 wieck Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/transam/xact.c,v 1.127 2002/06/15 19:55:37 momjian Exp $
*
* NOTES
* Transaction aborts can now occur two ways:
#include "pgstat.h"
-extern bool SharedBufferChanged;
-
static void AbortTransaction(void);
static void AtAbort_Cache(void);
static void AtAbort_Locks(void);
AtCommit_Memory();
AtEOXact_Files();
- SharedBufferChanged = false; /* safest place to do it */
-
/* Count transaction commit in statistics collector */
pgstat_count_xact_commit();
AtEOXact_Files();
AtAbort_Locks();
- SharedBufferChanged = false; /* safest place to do it */
-
/* Count transaction abort in statistics collector */
pgstat_count_xact_rollback();
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/buffer/buf_init.c,v 1.47 2001/11/05 17:46:27 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/buffer/buf_init.c,v 1.48 2002/06/15 19:55:37 momjian Exp $
*
*-------------------------------------------------------------------------
*/
long *PrivateRefCount; /* also used in freelist.c */
bits8 *BufferLocks; /* flag bits showing locks I have set */
-BufferTag *BufferTagLastDirtied; /* tag buffer had when last
- * dirtied by me */
-bool *BufferDirtiedByMe; /* T if buf has been dirtied in cur xact */
/*
BufferBlockPointers = (Block *) calloc(NBuffers, sizeof(Block));
PrivateRefCount = (long *) calloc(NBuffers, sizeof(long));
BufferLocks = (bits8 *) calloc(NBuffers, sizeof(bits8));
- BufferTagLastDirtied = (BufferTag *) calloc(NBuffers, sizeof(BufferTag));
- BufferDirtiedByMe = (bool *) calloc(NBuffers, sizeof(bool));
-
/*
* Convert shmem offsets into addresses as seen by this process. This
* is just to speed up the BufferGetBlock() macro.
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/buffer/bufmgr.c,v 1.123 2002/04/15 23:47:12 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/buffer/bufmgr.c,v 1.124 2002/06/15 19:55:37 momjian Exp $
*
*-------------------------------------------------------------------------
*/
extern long int BufferFlushCount;
extern long int LocalBufferFlushCount;
-/*
- * It's used to avoid disk writes for read-only transactions
- * (i.e. when no one shared buffer was changed by transaction).
- * We set it to true in WriteBuffer/WriteNoReleaseBuffer when
- * marking shared buffer as dirty. We set it to false in xact.c
- * after transaction is committed/aborted.
- */
-bool SharedBufferChanged = false;
-
static void WaitIO(BufferDesc *buf);
static void StartBufferIO(BufferDesc *buf, bool forInput);
static void TerminateBufferIO(BufferDesc *buf);
bufHdr = &BufferDescriptors[buffer - 1];
- SharedBufferChanged = true;
-
LWLockAcquire(BufMgrLock, LW_EXCLUSIVE);
Assert(bufHdr->refcount > 0);
bufHdr = &BufferDescriptors[buffer - 1];
- SharedBufferChanged = true;
-
LWLockAcquire(BufMgrLock, LW_EXCLUSIVE);
Assert(bufHdr->refcount > 0);
*
* Mark a buffer dirty when we have updated tuple commit-status bits in it.
*
- * This is similar to WriteNoReleaseBuffer, except that we do not set
- * SharedBufferChanged or BufferDirtiedByMe, because we have not made a
+ * This is similar to WriteNoReleaseBuffer, except that we have not made a
* critical change that has to be flushed to disk before xact commit --- the
- * status-bit update could be redone by someone else just as easily. The
- * buffer will be marked dirty, but it will not be written to disk until
- * there is another reason to write it.
+ * status-bit update could be redone by someone else just as easily.
*
* This routine might get called many times on the same page, if we are making
* the first scan after commit of an xact that added/deleted many tuples.
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: buf_internals.h,v 1.54 2001/11/05 17:46:35 momjian Exp $
+ * $Id: buf_internals.h,v 1.55 2002/06/15 19:55:38 momjian Exp $
*
*-------------------------------------------------------------------------
*/
/* bufmgr.c */
extern BufferDesc *BufferDescriptors;
extern bits8 *BufferLocks;
-extern BufferTag *BufferTagLastDirtied;
-extern LockRelId *BufferRelidLastDirtied;
-extern bool *BufferDirtiedByMe;
/* localbuf.c */
extern BufferDesc *LocalBufferDescriptors;