PostgreSQL Source Code git master
|
#include "postgres.h"
#include "access/clog.h"
#include "access/commit_ts.h"
#include "access/subtrans.h"
#include "access/transam.h"
#include "access/xact.h"
#include "access/xlogutils.h"
#include "commands/dbcommands.h"
#include "miscadmin.h"
#include "postmaster/autovacuum.h"
#include "storage/pmsignal.h"
#include "storage/proc.h"
#include "utils/syscache.h"
Go to the source code of this file.
Macros | |
#define | VAR_OID_PREFETCH 8192 |
Functions | |
Size | VarsupShmemSize (void) |
void | VarsupShmemInit (void) |
FullTransactionId | GetNewTransactionId (bool isSubXact) |
FullTransactionId | ReadNextFullTransactionId (void) |
void | AdvanceNextFullTransactionIdPastXid (TransactionId xid) |
void | AdvanceOldestClogXid (TransactionId oldest_datfrozenxid) |
void | SetTransactionIdLimit (TransactionId oldest_datfrozenxid, Oid oldest_datoid) |
bool | ForceTransactionIdLimitUpdate (void) |
Oid | GetNewObjectId (void) |
static void | SetNextObjectId (Oid nextOid) |
void | StopGeneratingPinnedObjectIds (void) |
Variables | |
TransamVariablesData * | TransamVariables = NULL |
void AdvanceNextFullTransactionIdPastXid | ( | TransactionId | xid | ) |
Definition at line 304 of file varsup.c.
References AmStartupProcess, Assert(), epoch, EpochFromFullTransactionId, FullTransactionIdFromEpochAndXid(), IsUnderPostmaster, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), TransamVariablesData::nextXid, TransactionIdAdvance, TransactionIdFollowsOrEquals(), TransamVariables, unlikely, and XidFromFullTransactionId.
Referenced by ApplyWalRecord(), multixact_redo(), ProcArrayApplyRecoveryInfo(), ProcessTwoPhaseBuffer(), RecordKnownAssignedTransactionIds(), xact_redo_abort(), and xact_redo_commit().
void AdvanceOldestClogXid | ( | TransactionId | oldest_datfrozenxid | ) |
Definition at line 355 of file varsup.c.
References LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), TransamVariablesData::oldestClogXid, TransactionIdPrecedes(), and TransamVariables.
Referenced by BootStrapXLOG(), clog_redo(), StartupXLOG(), and TruncateCLOG().
bool ForceTransactionIdLimitUpdate | ( | void | ) |
Definition at line 517 of file varsup.c.
References LW_SHARED, LWLockAcquire(), LWLockRelease(), TransamVariablesData::nextXid, ObjectIdGetDatum(), TransamVariablesData::oldestXid, TransamVariablesData::oldestXidDB, SearchSysCacheExists1, TransactionIdFollowsOrEquals(), TransactionIdIsNormal, TransactionIdIsValid, TransamVariables, XidFromFullTransactionId, and TransamVariablesData::xidVacLimit.
Referenced by vac_update_datfrozenxid().
Oid GetNewObjectId | ( | void | ) |
Definition at line 555 of file varsup.c.
References elog, ERROR, FirstGenbkiObjectId, FirstNormalObjectId, IsPostmasterEnvironment, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), TransamVariablesData::nextOid, TransamVariablesData::oidCount, RecoveryInProgress(), TransamVariables, VAR_OID_PREFETCH, and XLogPutNextOid().
Referenced by GetNewOidWithIndex(), and GetNewRelFileNumber().
FullTransactionId GetNewTransactionId | ( | bool | isSubXact | ) |
Definition at line 77 of file varsup.c.
References Assert(), BootstrapTransactionId, XidCacheStatus::count, elog, ereport, errcode(), errhint(), errmsg(), ERROR, ExtendCLOG(), ExtendCommitTs(), ExtendSUBTRANS(), FullTransactionIdAdvance(), FullTransactionIdFromEpochAndXid(), get_database_name(), IsBootstrapProcessingMode, IsInParallelMode(), IsUnderPostmaster, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), MyProc, TransamVariablesData::nextXid, TransamVariablesData::oldestXidDB, XidCacheStatus::overflowed, pg_write_barrier, PGPROC_MAX_CACHED_SUBXIDS, PGPROC::pgxactoff, PMSIGNAL_START_AUTOVAC_LAUNCHER, ProcGlobal, RecoveryInProgress(), SendPostmasterSignal(), PGPROC::subxids, PROC_HDR::subxidStates, PGPROC::subxidStatus, TransactionIdFollowsOrEquals(), TransamVariables, WARNING, PGPROC::xid, XidFromFullTransactionId, XidCache::xids, PROC_HDR::xids, TransamVariablesData::xidStopLimit, TransamVariablesData::xidVacLimit, TransamVariablesData::xidWarnLimit, and TransamVariablesData::xidWrapLimit.
Referenced by AssignTransactionId(), and consume_xids_common().
FullTransactionId ReadNextFullTransactionId | ( | void | ) |
Definition at line 288 of file varsup.c.
References LW_SHARED, LWLockAcquire(), LWLockRelease(), TransamVariablesData::nextXid, and TransamVariables.
Referenced by _bt_unlink_halfdead_page(), AdjustToFullTransactionId(), consume_xids(), consume_xids_common(), gistdeletepage(), pg_current_snapshot(), ReadNextTransactionId(), removable_cutoff(), ResolveRecoveryConflictWithSnapshotFullXid(), TransactionIdInRecentPast(), and XLogWalRcvSendHSFeedback().
|
static |
Definition at line 623 of file varsup.c.
References elog, ERROR, IsPostmasterEnvironment, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), TransamVariablesData::nextOid, TransamVariablesData::oidCount, and TransamVariables.
Referenced by StopGeneratingPinnedObjectIds().
void SetTransactionIdLimit | ( | TransactionId | oldest_datfrozenxid, |
Oid | oldest_datoid | ||
) |
Definition at line 372 of file varsup.c.
References Assert(), autovacuum_freeze_max_age, DEBUG1, ereport, errhint(), errmsg(), errmsg_internal(), FirstNormalTransactionId, get_database_name(), InRecovery, IsTransactionState(), IsUnderPostmaster, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), MaxTransactionId, TransamVariablesData::nextXid, TransamVariablesData::oldestXid, TransamVariablesData::oldestXidDB, PMSIGNAL_START_AUTOVAC_LAUNCHER, SendPostmasterSignal(), TransactionIdFollowsOrEquals(), TransactionIdIsNormal, TransamVariables, WARNING, XidFromFullTransactionId, TransamVariablesData::xidStopLimit, TransamVariablesData::xidVacLimit, TransamVariablesData::xidWarnLimit, and TransamVariablesData::xidWrapLimit.
Referenced by BootStrapXLOG(), StartupXLOG(), vac_truncate_clog(), and xlog_redo().
void StopGeneratingPinnedObjectIds | ( | void | ) |
Definition at line 652 of file varsup.c.
References FirstUnpinnedObjectId, and SetNextObjectId().
Referenced by pg_stop_making_pinned_objects().
void VarsupShmemInit | ( | void | ) |
Definition at line 47 of file varsup.c.
References Assert(), IsUnderPostmaster, ShmemInitStruct(), and TransamVariables.
Referenced by CreateOrAttachShmemStructs().
Size VarsupShmemSize | ( | void | ) |
Definition at line 41 of file varsup.c.
Referenced by CalculateShmemSize().
TransamVariablesData* TransamVariables = NULL |
Definition at line 34 of file varsup.c.
Referenced by ActivateCommitTs(), AdvanceNextFullTransactionIdPastXid(), AdvanceOldestClogXid(), AdvanceOldestCommitTsXid(), BootStrapXLOG(), ComputeXidHorizons(), consume_xids_shortcut(), CreateCheckPoint(), DeactivateCommitTs(), ExpireAllKnownAssignedTransactionIds(), ExpireOldKnownAssignedTransactionIds(), ExpireTreeKnownAssignedTransactionIds(), ForceTransactionIdLimitUpdate(), get_xid_status(), GetNewObjectId(), GetNewTransactionId(), GetOldestActiveTransactionId(), GetOldestSafeDecodingTransactionId(), GetRunningTransactionData(), GetSnapshotData(), GetSnapshotDataReuse(), GetStrictOldestNonRemovableTransactionId(), MaintainLatestCompletedXid(), MaintainLatestCompletedXidRecovery(), PrescanPreparedTransactions(), ProcArrayApplyRecoveryInfo(), ProcArrayClearTransaction(), ProcArrayEndTransactionInternal(), ProcArrayRemove(), ProcArrayShmemInit(), ProcessTwoPhaseBuffer(), ReadNextFullTransactionId(), ReleasePredicateLocks(), SetCommitTsLimit(), SetNextObjectId(), SetTransactionIdLimit(), StartupCLOG(), StartupSUBTRANS(), StartupXLOG(), TransactionIdGetCommitTsData(), TransactionIdInRecentPast(), TransactionIdIsInProgress(), TransactionTreeSetCommitTsData(), TrimCLOG(), update_cached_xid_range(), VarsupShmemInit(), XidCacheRemoveRunningXids(), xlog_redo(), and XLogRecGetFullXid().