|
PostgreSQL Source Code git master
|
#include "postgres.h"#include "access/genam.h"#include "access/heapam.h"#include "access/htup_details.h"#include "access/xact.h"#include "access/xlog.h"#include "access/xloginsert.h"#include "catalog/indexing.h"#include "catalog/pg_class.h"#include "catalog/pg_database.h"#include "commands/progress.h"#include "commands/vacuum.h"#include "common/relpath.h"#include "miscadmin.h"#include "pgstat.h"#include "postmaster/bgworker.h"#include "postmaster/bgwriter.h"#include "postmaster/datachecksum_state.h"#include "storage/bufmgr.h"#include "storage/checksum.h"#include "storage/ipc.h"#include "storage/latch.h"#include "storage/lmgr.h"#include "storage/lwlock.h"#include "storage/procarray.h"#include "storage/smgr.h"#include "storage/subsystems.h"#include "tcop/tcopprot.h"#include "utils/builtins.h"#include "utils/fmgroids.h"#include "utils/injection_point.h"#include "utils/lsyscache.h"#include "utils/ps_status.h"#include "utils/syscache.h"#include "utils/wait_event.h"
Go to the source code of this file.
Data Structures | |
| struct | ChecksumBarrierCondition |
| struct | DataChecksumsStateStruct |
| struct | DataChecksumsWorkerDatabase |
| bool AbsorbDataChecksumsBarrier | ( | ProcSignalBarrierType | barrier | ) |
Definition at line 411 of file datachecksum_state.c.
References barrier, checksum_barriers, data_checksums, elog, ereport, errcode(), errmsg, ERROR, fb(), i, lengthof, PG_DATA_CHECKSUM_INPROGRESS_OFF, PG_DATA_CHECKSUM_INPROGRESS_ON, PG_DATA_CHECKSUM_OFF, PG_DATA_CHECKSUM_VERSION, PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF, PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_ON, PROCSIGNAL_BARRIER_CHECKSUM_OFF, PROCSIGNAL_BARRIER_CHECKSUM_ON, RecoveryInProgress(), and SetLocalDataChecksumState().
Referenced by ProcessProcSignalBarrier().
Definition at line 1322 of file datachecksum_state.c.
References AccessShareLock, CommitTransactionCommand(), CurrentMemoryContext, DatabaseList, DataChecksumsWorkerDatabase::dbname, DataChecksumsWorkerDatabase::dboid, fb(), Form_pg_database, ForwardScanDirection, GETSTRUCT(), heap_getnext(), HeapTupleIsValid, lappend(), MemoryContextSwitchTo(), NameStr, NIL, palloc0(), pstrdup(), StartTransactionCommand(), table_beginscan_catalog(), table_close(), table_endscan(), and table_open().
Referenced by ProcessAllDatabases().
Definition at line 1388 of file datachecksum_state.c.
References AccessShareLock, CommitTransactionCommand(), CurrentMemoryContext, fb(), ForwardScanDirection, GETSTRUCT(), heap_getnext(), HeapTupleIsValid, lappend_oid(), MemoryContextSwitchTo(), NIL, StartTransactionCommand(), table_beginscan_catalog(), table_close(), table_endscan(), and table_open().
Referenced by DataChecksumsWorkerMain().
Definition at line 1284 of file datachecksum_state.c.
References AccessShareLock, BTEqualStrategyNumber, CommitTransactionCommand(), fb(), HeapTupleIsValid, ScanKeyInit(), SnapshotSelf, StartTransactionCommand(), systable_beginscan(), systable_endscan(), systable_getnext(), table_close(), and table_open().
Referenced by ProcessDatabase().
Definition at line 1269 of file datachecksum_state.c.
References DataChecksumState, name, and ShmemRequestStruct.
Definition at line 1013 of file datachecksum_state.c.
References Assert, B_DATACHECKSUMSWORKER_LAUNCHER, BackgroundWorkerInitializeConnectionByOid(), BackgroundWorkerUnblockSignals(), DataChecksumsStateStruct::cost_delay, DataChecksumsStateStruct::cost_limit, DataChecksumsNeedVerify(), DataChecksumState, DEBUG1, die, DISABLE_DATACHECKSUMS, ENABLE_DATACHECKSUMS, ereport, errcode(), errmsg, ERROR, fb(), init_ps_display(), INJECTION_POINT, InvalidOid, DataChecksumsStateStruct::launch_cost_delay, DataChecksumsStateStruct::launch_cost_limit, DataChecksumsStateStruct::launch_operation, launcher_cancel_handler(), launcher_exit(), DataChecksumsStateStruct::launcher_running, launcher_running, LOG, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), MyBackendType, on_shmem_exit(), DataChecksumsStateStruct::operation, operation, pgstat_progress_end_command(), pgstat_progress_start_command(), pgstat_progress_update_param(), pqsignal, ProcessAllDatabases(), procsignal_sigusr1_handler(), PROGRESS_COMMAND_DATACHECKSUMS, PROGRESS_DATACHECKSUMS_PHASE, PROGRESS_DATACHECKSUMS_PHASE_DISABLING, PROGRESS_DATACHECKSUMS_PHASE_DONE, PROGRESS_DATACHECKSUMS_PHASE_ENABLING, SetDataChecksumsOff(), SetDataChecksumsOn(), SetDataChecksumsOnInProgress(), SIGUSR1, and SIGUSR2.
Definition at line 1453 of file datachecksum_state.c.
References abort_requested, arg, Assert, B_DATACHECKSUMSWORKER_WORKER, BackgroundWorkerInitializeConnectionByOid(), BackgroundWorkerUnblockSignals(), BAS_VACUUM, BGWORKER_BYPASS_ALLOWCONN, BuildRelationList(), CHECK_FOR_INTERRUPTS, DataChecksumsStateStruct::cost_delay, DataChecksumsStateStruct::cost_limit, DataChecksumState, DATACHECKSUMSWORKER_ABORTED, DATACHECKSUMSWORKER_SUCCESSFUL, DatumGetObjectId(), DEBUG1, die, ENABLE_DATACHECKSUMS, ereport, errmsg, fb(), foreach_oid, GetAccessStrategy(), init_ps_display(), INJECTION_POINT_CACHED, InvalidOid, IS_INJECTION_POINT_ATTACHED, DataChecksumsStateStruct::launch_operation, list_free(), list_length(), list_member_oid(), LOG, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), MyBackendType, MyLatch, NIL, DataChecksumsStateStruct::operation, operation, pgstat_progress_end_command(), pgstat_progress_start_command(), pgstat_progress_update_multi_param(), pgstat_progress_update_param(), pgstat_report_activity(), pqsignal, DataChecksumsStateStruct::process_shared_catalogs, ProcessSingleRelationByOid(), procsignal_sigusr1_handler(), PROGRESS_COMMAND_DATACHECKSUMS, PROGRESS_DATACHECKSUMS_PHASE, PROGRESS_DATACHECKSUMS_PHASE_WAITING_TEMPREL, PROGRESS_DATACHECKSUMS_RELS_DONE, PROGRESS_DATACHECKSUMS_RELS_TOTAL, ResetLatch(), SIGUSR1, snprintf, STATE_RUNNING, DataChecksumsStateStruct::success, VacuumCostActive, VacuumCostBalance, VacuumCostDelay, VacuumCostLimit, VacuumCostPageDirty, VacuumCostPageHit, VacuumCostPageMiss, WaitLatch(), WL_EXIT_ON_PM_DEATH, WL_LATCH_SET, and WL_TIMEOUT.
| Datum disable_data_checksums | ( | PG_FUNCTION_ARGS | ) |
Definition at line 488 of file datachecksum_state.c.
References DISABLE_DATACHECKSUMS, ereport, errcode(), errmsg, ERROR, fb(), PG_RETURN_VOID, StartDataChecksumsWorkerLauncher(), and superuser().
Definition at line 370 of file datachecksum_state.c.
References Assert, barrier, EmitProcSignalBarrier(), PG_DATA_CHECKSUM_INPROGRESS_OFF, PG_DATA_CHECKSUM_INPROGRESS_ON, PG_DATA_CHECKSUM_OFF, PG_DATA_CHECKSUM_VERSION, PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_OFF, PROCSIGNAL_BARRIER_CHECKSUM_INPROGRESS_ON, PROCSIGNAL_BARRIER_CHECKSUM_OFF, PROCSIGNAL_BARRIER_CHECKSUM_ON, and WaitForProcSignalBarrier().
Referenced by xlog2_redo(), and xlog_redo().
| Datum enable_data_checksums | ( | PG_FUNCTION_ARGS | ) |
Definition at line 505 of file datachecksum_state.c.
References ENABLE_DATACHECKSUMS, ereport, errcode(), errmsg, ERROR, fb(), PG_GETARG_INT32, PG_RETURN_VOID, StartDataChecksumsWorkerLauncher(), and superuser().
Definition at line 1362 of file datachecksum_state.c.
References dblist, fb(), foreach_ptr, list_free_deep(), and pfree().
Referenced by ProcessAllDatabases().
|
static |
Definition at line 923 of file datachecksum_state.c.
References abort_requested, fb(), MyLatch, and SetLatch().
Referenced by DataChecksumsWorkerLauncherMain().
Definition at line 886 of file datachecksum_state.c.
References abort_requested, DataChecksumsInProgressOn(), DataChecksumState, ereport, errmsg, fb(), InvalidPid, kill, DataChecksumsStateStruct::launcher_running, launcher_running, LOG, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), SetDataChecksumsOff(), and DataChecksumsStateStruct::worker_pid.
Referenced by DataChecksumsWorkerLauncherMain().
Definition at line 1172 of file datachecksum_state.c.
References abort_requested, BuildDatabaseList(), DatabaseList, DataChecksumState, DATACHECKSUMSWORKER_ABORTED, DATACHECKSUMSWORKER_FAILED, ereport, errcode(), errhint(), errmsg, ERROR, fb(), foreach_ptr, FreeDatabaseList(), INJECTION_POINT_CACHED, IS_INJECTION_POINT_ATTACHED, list_length(), pgstat_progress_update_multi_param(), pgstat_progress_update_param(), DataChecksumsStateStruct::process_shared_catalogs, ProcessDatabase(), PROGRESS_DATACHECKSUMS_BLOCKS_DONE, PROGRESS_DATACHECKSUMS_BLOCKS_TOTAL, PROGRESS_DATACHECKSUMS_DBS_DONE, PROGRESS_DATACHECKSUMS_DBS_TOTAL, PROGRESS_DATACHECKSUMS_PHASE, PROGRESS_DATACHECKSUMS_PHASE_WAITING_BARRIER, PROGRESS_DATACHECKSUMS_RELS_DONE, PROGRESS_DATACHECKSUMS_RELS_TOTAL, result, SetDataChecksumsOff(), and WaitForAllTransactionsToFinish().
Referenced by DataChecksumsWorkerLauncherMain().
|
static |
Definition at line 762 of file datachecksum_state.c.
References Assert, BGW_MAXLEN, BGW_NEVER_RESTART, BGWH_POSTMASTER_DIED, BGWH_STARTED, BGWH_STOPPED, BGWORKER_BACKEND_DATABASE_CONNECTION, BGWORKER_SHMEM_ACCESS, BgWorkerStart_RecoveryFinished, DatabaseExists(), DataChecksumState, DATACHECKSUMSWORKER_ABORTED, DATACHECKSUMSWORKER_DROPDB, DATACHECKSUMSWORKER_FAILED, DATACHECKSUMSWORKER_SUCCESSFUL, DataChecksumsWorkerDatabase::dbname, DataChecksumsWorkerDatabase::dboid, ereport, errcode(), errhint(), errmsg, FATAL, fb(), InvalidPid, LOG, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), MyProcPid, NAMEDATALEN, ObjectIdGetDatum(), pgstat_report_activity(), RegisterDynamicBackgroundWorker(), snprintf, STATE_IDLE, STATE_RUNNING, DataChecksumsStateStruct::success, WaitForBackgroundWorkerShutdown(), WaitForBackgroundWorkerStartup(), WARNING, and DataChecksumsStateStruct::worker_pid.
Referenced by ProcessAllDatabases().
|
static |
Definition at line 711 of file datachecksum_state.c.
References AccessShareLock, CommitTransactionCommand(), fb(), MAX_FORKNUM, pgstat_report_activity(), ProcessSingleRelationFork(), RelationData::rd_smgr, relation_close(), RelationGetSmgr(), smgrexists(), StartTransactionCommand(), STATE_IDLE, and try_relation_open().
Referenced by DataChecksumsWorkerMain().
|
static |
Definition at line 629 of file datachecksum_state.c.
References abort_requested, Assert, buf, BUFFER_LOCK_EXCLUSIVE, DataChecksumState, DISABLE_DATACHECKSUMS, ENABLE_DATACHECKSUMS, END_CRIT_SECTION, fb(), forkNames, get_namespace_name(), DataChecksumsStateStruct::launch_operation, LockBuffer(), log_newpage_buffer(), LW_SHARED, LWLockAcquire(), LWLockRelease(), MarkBufferDirty(), NAMEDATALEN, operation, pfree(), pgstat_progress_update_param(), pgstat_report_activity(), PROGRESS_DATACHECKSUMS_BLOCKS_DONE, PROGRESS_DATACHECKSUMS_BLOCKS_TOTAL, RBM_NORMAL, ReadBufferExtended(), RelationGetNamespace, RelationGetNumberOfBlocksInFork(), RelationGetRelationName, snprintf, START_CRIT_SECTION, STATE_RUNNING, UnlockReleaseBuffer(), and vacuum_delay_point().
Referenced by ProcessSingleRelationByOid().
| void StartDataChecksumsWorkerLauncher | ( | DataChecksumsWorkerOperation | op, |
| int | cost_delay, | ||
| int | cost_limit | ||
| ) |
Definition at line 543 of file datachecksum_state.c.
References Assert, BGW_MAXLEN, BGW_NEVER_RESTART, BGWORKER_BACKEND_DATABASE_CONNECTION, BGWORKER_SHMEM_ACCESS, BgWorkerStart_RecoveryFinished, DataChecksumState, DISABLE_DATACHECKSUMS, ereport, errcode(), errmsg, ERROR, fb(), INJECTION_POINT, DataChecksumsStateStruct::launch_cost_delay, DataChecksumsStateStruct::launch_cost_limit, DataChecksumsStateStruct::launch_operation, DataChecksumsStateStruct::launcher_running, launcher_running, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), MyProcPid, DataChecksumsStateStruct::operation, RegisterDynamicBackgroundWorker(), and snprintf.
Referenced by disable_data_checksums(), and enable_data_checksums().
Definition at line 953 of file datachecksum_state.c.
References abort_requested, CHECK_FOR_INTERRUPTS, DataChecksumState, ereport, errcode(), errhint(), errmsg, FATAL, fb(), GetOldestActiveTransactionId(), DataChecksumsStateStruct::launch_operation, LW_SHARED, LWLockAcquire(), LWLockRelease(), MyLatch, TransamVariablesData::nextXid, operation, pgstat_report_activity(), ResetLatch(), snprintf, STATE_IDLE, STATE_RUNNING, TransactionIdPrecedes(), TransamVariables, WaitLatch(), WL_LATCH_SET, WL_POSTMASTER_DEATH, WL_TIMEOUT, and XidFromFullTransactionId.
Referenced by ProcessAllDatabases().
|
static |
Definition at line 338 of file datachecksum_state.c.
Referenced by DataChecksumsWorkerMain(), launcher_cancel_handler(), launcher_exit(), ProcessAllDatabases(), ProcessSingleRelationFork(), and WaitForAllTransactionsToFinish().
|
static |
Definition at line 238 of file datachecksum_state.c.
Referenced by AbsorbDataChecksumsBarrier().
| const ShmemCallbacks DataChecksumsShmemCallbacks |
Definition at line 361 of file datachecksum_state.c.
|
static |
Definition at line 329 of file datachecksum_state.c.
Referenced by DataChecksumsShmemRequest(), DataChecksumsWorkerLauncherMain(), DataChecksumsWorkerMain(), launcher_exit(), ProcessAllDatabases(), ProcessDatabase(), ProcessSingleRelationFork(), StartDataChecksumsWorkerLauncher(), and WaitForAllTransactionsToFinish().
|
static |
Definition at line 344 of file datachecksum_state.c.
Referenced by DataChecksumsWorkerLauncherMain(), launcher_exit(), and StartDataChecksumsWorkerLauncher().
|
static |
Definition at line 347 of file datachecksum_state.c.
Referenced by _SPI_pquery(), apply_handle_tuple_routing(), AsyncReadBuffers(), ATExecSetRelOptions(), check_foreign_key(), CheckReadBuffersOperation(), CheckValidResultRel(), create_foreign_modify(), create_modifytable_path(), DataChecksumsWorkerLauncherMain(), DataChecksumsWorkerMain(), ExecInitModifyTable(), ExecModifyTable(), execute_foreign_modify(), ExecutePlan(), ExplainNode(), InitPlan(), make_modifytable(), postgresPlanDirectModify(), postgresPlanForeignModify(), ProcessReadBuffersResult(), ProcessSingleRelationFork(), read_buffers(), ReadBuffer_common(), set_deparse_plan(), show_modifytable_info(), show_plan_tlist(), standard_ExecutorRun(), start_lo_xact(), StartReadBuffer(), StartReadBuffers(), StartReadBuffersImpl(), triggered_change_notification(), WaitForAllTransactionsToFinish(), and WaitReadBuffers().