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/xlog.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 | |
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) |
Variables | |
VariableCache | ShmemVariableCache = NULL |
#define VAR_OID_PREFETCH 8192 |
Definition at line 31 of file varsup.c.
Referenced by GetNewObjectId().
void AdvanceNextFullTransactionIdPastXid | ( | TransactionId | xid | ) |
Definition at line 277 of file varsup.c.
References AmStartupProcess, Assert, epoch, EpochFromFullTransactionId, FullTransactionIdFromEpochAndXid(), IsUnderPostmaster, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), VariableCacheData::nextXid, TransactionIdAdvance, TransactionIdFollowsOrEquals(), unlikely, and XidFromFullTransactionId.
Referenced by multixact_redo(), ProcArrayApplyRecoveryInfo(), ProcessTwoPhaseBuffer(), RecordKnownAssignedTransactionIds(), StartupXLOG(), xact_redo_abort(), and xact_redo_commit().
void AdvanceOldestClogXid | ( | TransactionId | oldest_datfrozenxid | ) |
Definition at line 328 of file varsup.c.
References LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), VariableCacheData::oldestClogXid, and TransactionIdPrecedes().
Referenced by BootStrapXLOG(), clog_redo(), StartupXLOG(), and TruncateCLOG().
bool ForceTransactionIdLimitUpdate | ( | void | ) |
Definition at line 490 of file varsup.c.
References DATABASEOID, LW_SHARED, LWLockAcquire(), LWLockRelease(), VariableCacheData::nextXid, ObjectIdGetDatum, VariableCacheData::oldestXid, VariableCacheData::oldestXidDB, SearchSysCacheExists1, TransactionIdFollowsOrEquals(), TransactionIdIsNormal, TransactionIdIsValid, XidFromFullTransactionId, and VariableCacheData::xidVacLimit.
Referenced by vac_update_datfrozenxid().
Oid GetNewObjectId | ( | void | ) |
Definition at line 528 of file varsup.c.
References Assert, AssertTransactionIdInAllowableRange, elog, ERROR, FirstBootstrapObjectId, FirstNormalObjectId, IsPostmasterEnvironment, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), VariableCacheData::nextOid, VariableCacheData::nextXid, VariableCacheData::oidCount, VariableCacheData::oldestXid, pg_memory_barrier, RecoveryInProgress(), TransactionIdFollowsOrEquals(), TransactionIdIsNormal, TransactionIdIsValid, TransactionIdPrecedesOrEquals(), VAR_OID_PREFETCH, XidFromFullTransactionId, and XLogPutNextOid().
Referenced by GetNewOidWithIndex(), and GetNewRelFileNode().
FullTransactionId GetNewTransactionId | ( | bool | isSubXact | ) |
Definition at line 50 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, VariableCacheData::nextXid, VariableCacheData::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(), WARNING, PGPROC::xid, XidFromFullTransactionId, XidCache::xids, PROC_HDR::xids, VariableCacheData::xidStopLimit, VariableCacheData::xidVacLimit, VariableCacheData::xidWarnLimit, and VariableCacheData::xidWrapLimit.
Referenced by AssignTransactionId().
FullTransactionId ReadNextFullTransactionId | ( | void | ) |
Definition at line 261 of file varsup.c.
References LW_SHARED, LWLockAcquire(), LWLockRelease(), and VariableCacheData::nextXid.
Referenced by _bt_unlink_halfdead_page(), gistdeletepage(), pg_current_snapshot(), ReadNextTransactionId(), ResolveRecoveryConflictWithSnapshotFullXid(), TransactionIdInRecentPast(), and XLogWalRcvSendHSFeedback().
void SetTransactionIdLimit | ( | TransactionId | oldest_datfrozenxid, |
Oid | oldest_datoid | ||
) |
Definition at line 345 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, VariableCacheData::nextXid, VariableCacheData::oldestXid, VariableCacheData::oldestXidDB, PMSIGNAL_START_AUTOVAC_LAUNCHER, SendPostmasterSignal(), TransactionIdFollowsOrEquals(), TransactionIdIsNormal, WARNING, XidFromFullTransactionId, VariableCacheData::xidStopLimit, VariableCacheData::xidVacLimit, VariableCacheData::xidWarnLimit, and VariableCacheData::xidWrapLimit.
Referenced by BootStrapXLOG(), StartupXLOG(), vac_truncate_clog(), and xlog_redo().
VariableCache ShmemVariableCache = NULL |
Definition at line 34 of file varsup.c.
Referenced by ActivateCommitTs(), AdvanceOldestCommitTsXid(), BootStrapXLOG(), ComputeXidHorizons(), CreateCheckPoint(), CreateSharedProcArray(), DeactivateCommitTs(), ExpireTreeKnownAssignedTransactionIds(), get_xid_status(), GetOldestActiveTransactionId(), GetOldestSafeDecodingTransactionId(), GetRunningTransactionData(), GetSnapshotData(), GetSnapshotDataReuse(), InitShmemAllocation(), MaintainLatestCompletedXid(), MaintainLatestCompletedXidRecovery(), PostmasterMarkPIDForWorkerNotify(), PrescanPreparedTransactions(), ProcArrayApplyRecoveryInfo(), ProcArrayClearTransaction(), ProcArrayEndTransactionInternal(), ProcArrayRemove(), ProcessTwoPhaseBuffer(), ReleasePredicateLocks(), SetCommitTsLimit(), StartupCLOG(), StartupSUBTRANS(), StartupXLOG(), TransactionIdGetCommitTsData(), TransactionIdInRecentPast(), TransactionIdIsInProgress(), TransactionTreeSetCommitTsData(), TrimCLOG(), update_cached_xid_range(), xlog_redo(), and XLogRecGetFullXid().