PostgreSQL Source Code
git master
|
#include "access/xlog.h"
#include "datatype/timestamp.h"
#include "replication/origin.h"
#include "storage/sync.h"
#include "utils/guc.h"
Go to the source code of this file.
Data Structures | |
struct | xl_commit_ts_set |
struct | xl_commit_ts_truncate |
Macros | |
#define | COMMIT_TS_ZEROPAGE 0x00 |
#define | COMMIT_TS_TRUNCATE 0x10 |
#define | COMMIT_TS_SETTS 0x20 |
#define | SizeOfCommitTsSet |
#define | SizeOfCommitTsTruncate |
Typedefs | |
typedef struct xl_commit_ts_set | xl_commit_ts_set |
typedef struct xl_commit_ts_truncate | xl_commit_ts_truncate |
Variables | |
PGDLLIMPORT bool | track_commit_timestamp |
#define COMMIT_TS_SETTS 0x20 |
Definition at line 53 of file commit_ts.h.
Referenced by commit_ts_desc(), commit_ts_identify(), commit_ts_redo(), and WriteSetTimestampXlogRec().
#define COMMIT_TS_TRUNCATE 0x10 |
Definition at line 52 of file commit_ts.h.
Referenced by commit_ts_desc(), commit_ts_identify(), commit_ts_redo(), and WriteTruncateXlogRec().
#define COMMIT_TS_ZEROPAGE 0x00 |
Definition at line 51 of file commit_ts.h.
Referenced by commit_ts_desc(), commit_ts_identify(), commit_ts_redo(), and WriteZeroPageXlogRec().
#define SizeOfCommitTsSet |
Definition at line 63 of file commit_ts.h.
Referenced by commit_ts_desc(), and commit_ts_redo().
#define SizeOfCommitTsTruncate |
Definition at line 72 of file commit_ts.h.
Referenced by WriteTruncateXlogRec().
typedef struct xl_commit_ts_set xl_commit_ts_set |
typedef struct xl_commit_ts_truncate xl_commit_ts_truncate |
void AdvanceOldestCommitTsXid | ( | TransactionId | oldestXact | ) |
Definition at line 920 of file commit_ts.c.
References InvalidTransactionId, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), VariableCacheData::oldestCommitTsXid, ShmemVariableCache, and TransactionIdPrecedes().
Referenced by commit_ts_redo(), and vac_truncate_clog().
void BootStrapCommitTs | ( | void | ) |
Definition at line 586 of file commit_ts.c.
Referenced by BootStrapXLOG().
void CheckPointCommitTs | ( | void | ) |
Definition at line 807 of file commit_ts.c.
References CommitTsCtl, and SimpleLruWriteAll().
Referenced by CheckPointGuts().
void commit_ts_desc | ( | StringInfo | buf, |
XLogReaderState * | record | ||
) |
Definition at line 22 of file committsdesc.c.
References appendStringInfo(), COMMIT_TS_SETTS, COMMIT_TS_TRUNCATE, COMMIT_TS_ZEROPAGE, i, xl_commit_ts_set::mainxid, xl_commit_ts_set::nodeid, xl_commit_ts_truncate::oldestXid, xl_commit_ts_truncate::pageno, palloc(), pfree(), SizeOfCommitTsSet, xl_commit_ts_set::timestamp, timestamptz_to_str(), XLogRecGetData, XLogRecGetDataLen, XLogRecGetInfo, and XLR_INFO_MASK.
const char* commit_ts_identify | ( | uint8 | info | ) |
Definition at line 69 of file committsdesc.c.
References COMMIT_TS_SETTS, COMMIT_TS_TRUNCATE, and COMMIT_TS_ZEROPAGE.
void commit_ts_redo | ( | XLogReaderState * | record | ) |
Definition at line 1022 of file commit_ts.c.
References AdvanceOldestCommitTsXid(), Assert, COMMIT_TS_SETTS, COMMIT_TS_TRUNCATE, COMMIT_TS_ZEROPAGE, CommitTsCtl, elog, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), xl_commit_ts_set::mainxid, xl_commit_ts_set::nodeid, xl_commit_ts_truncate::oldestXid, xl_commit_ts_truncate::pageno, palloc(), PANIC, pfree(), SimpleLruTruncate(), SimpleLruWritePage(), SizeOfCommitTsSet, xl_commit_ts_set::timestamp, TransactionTreeSetCommitTsData(), XLogRecGetData, XLogRecGetDataLen, XLogRecGetInfo, XLogRecHasAnyBlockRefs, XLR_INFO_MASK, and ZeroCommitTsPage().
Definition at line 654 of file commit_ts.c.
References ActivateCommitTs(), CommitTimestampShared::commitTsActive, and DeactivateCommitTs().
Referenced by xlog_redo().
Size CommitTsShmemBuffers | ( | void | ) |
Definition at line 531 of file commit_ts.c.
References Max, Min, and NBuffers.
Referenced by CommitTsShmemInit(), and CommitTsShmemSize().
void CommitTsShmemInit | ( | void | ) |
Definition at line 551 of file commit_ts.c.
References Assert, COMMIT_TS_XACTS_PER_PAGE, CommitTimestampShared::commitTsActive, CommitTsCtl, CommitTsPagePrecedes(), CommitTsShmemBuffers(), CommitTimestampShared::dataLastCommit, InvalidRepOriginId, InvalidTransactionId, IsUnderPostmaster, LWTRANCHE_COMMITTS_BUFFER, CommitTimestampEntry::nodeid, ShmemInitStruct(), SimpleLruInit(), SlruPagePrecedesUnitTests, SYNC_HANDLER_COMMIT_TS, CommitTimestampEntry::time, TIMESTAMP_NOBEGIN, and CommitTimestampShared::xidLastCommit.
Referenced by CreateSharedMemoryAndSemaphores().
Size CommitTsShmemSize | ( | void | ) |
Definition at line 540 of file commit_ts.c.
References CommitTsShmemBuffers(), and SimpleLruShmemSize().
Referenced by CreateSharedMemoryAndSemaphores().
int committssyncfiletag | ( | const FileTag * | ftag, |
char * | path | ||
) |
Definition at line 1089 of file commit_ts.c.
References CommitTsCtl, and SlruSyncFileTag().
void CompleteCommitTsInitialization | ( | void | ) |
Definition at line 632 of file commit_ts.c.
References ActivateCommitTs(), DeactivateCommitTs(), and track_commit_timestamp.
Referenced by StartupXLOG().
void ExtendCommitTs | ( | TransactionId | newestXact | ) |
Definition at line 829 of file commit_ts.c.
References Assert, CommitTimestampShared::commitTsActive, FirstNormalTransactionId, InRecovery, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), TransactionIdEquals, TransactionIdToCTsEntry, TransactionIdToCTsPage, and ZeroCommitTsPage().
Referenced by GetNewTransactionId().
TransactionId GetLatestCommitTsData | ( | TimestampTz * | ts, |
RepOriginId * | nodeid | ||
) |
Definition at line 368 of file commit_ts.c.
References CommitTimestampShared::commitTsActive, CommitTimestampShared::dataLastCommit, error_commit_ts_disabled(), LW_SHARED, LWLockAcquire(), LWLockRelease(), CommitTimestampEntry::nodeid, CommitTimestampEntry::time, and CommitTimestampShared::xidLastCommit.
Referenced by pg_last_committed_xact().
void SetCommitTsLimit | ( | TransactionId | oldestXact, |
TransactionId | newestXact | ||
) |
Definition at line 893 of file commit_ts.c.
References Assert, InvalidTransactionId, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), VariableCacheData::newestCommitTsXid, VariableCacheData::oldestCommitTsXid, ShmemVariableCache, and TransactionIdPrecedes().
Referenced by BootStrapXLOG(), and StartupXLOG().
void StartupCommitTs | ( | void | ) |
Definition at line 622 of file commit_ts.c.
References ActivateCommitTs().
Referenced by StartupXLOG().
bool TransactionIdGetCommitTsData | ( | TransactionId | xid, |
TimestampTz * | ts, | ||
RepOriginId * | nodeid | ||
) |
Definition at line 282 of file commit_ts.c.
References Assert, CommitTimestampShared::commitTsActive, CommitTsCtl, CommitTimestampShared::dataLastCommit, ereport, errcode(), errmsg(), ERROR, error_commit_ts_disabled(), InvalidRepOriginId, LW_SHARED, LWLockAcquire(), LWLockRelease(), VariableCacheData::newestCommitTsXid, CommitTimestampEntry::nodeid, VariableCacheData::oldestCommitTsXid, ShmemVariableCache, SimpleLruReadPage_ReadOnly(), SizeOfCommitTimestampEntry, CommitTimestampEntry::time, TransactionIdIsNormal, TransactionIdIsValid, TransactionIdPrecedes(), TransactionIdToCTsEntry, TransactionIdToCTsPage, and CommitTimestampShared::xidLastCommit.
Referenced by pg_xact_commit_timestamp(), and pg_xact_commit_timestamp_origin().
void TransactionTreeSetCommitTsData | ( | TransactionId | xid, |
int | nsubxids, | ||
TransactionId * | subxids, | ||
TimestampTz | timestamp, | ||
RepOriginId | nodeid, | ||
bool | write_xlog | ||
) |
Definition at line 145 of file commit_ts.c.
References CommitTimestampShared::commitTsActive, CommitTimestampShared::dataLastCommit, i, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), VariableCacheData::newestCommitTsXid, CommitTimestampEntry::nodeid, SetXidCommitTsInPage(), ShmemVariableCache, CommitTimestampEntry::time, TransactionIdPrecedes(), TransactionIdToCTsPage, WriteSetTimestampXlogRec(), and CommitTimestampShared::xidLastCommit.
Referenced by commit_ts_redo(), RecordTransactionCommit(), RecordTransactionCommitPrepared(), and xact_redo_commit().
void TruncateCommitTs | ( | TransactionId | oldestXact | ) |
Definition at line 867 of file commit_ts.c.
References CommitTsCtl, SimpleLruTruncate(), SlruScanDirCbReportPresence(), SlruScanDirectory(), TransactionIdToCTsPage, and WriteTruncateXlogRec().
Referenced by vac_truncate_clog().
PGDLLIMPORT bool track_commit_timestamp |
Definition at line 103 of file commit_ts.c.
Referenced by CompleteCommitTsInitialization(), InitControlFile(), and XLogReportParameters().