PostgreSQL Source Code
git master
|
#include "storage/relfilenode.h"
Go to the source code of this file.
Data Structures | |
struct | FileTag |
Typedefs | |
typedef enum SyncRequestType | SyncRequestType |
typedef enum SyncRequestHandler | SyncRequestHandler |
typedef struct FileTag | FileTag |
Enumerations | |
enum | SyncRequestType { SYNC_REQUEST, SYNC_UNLINK_REQUEST, SYNC_FORGET_REQUEST, SYNC_FILTER_REQUEST } |
enum | SyncRequestHandler { SYNC_HANDLER_MD = 0 } |
Functions | |
void | InitSync (void) |
void | SyncPreCheckpoint (void) |
void | SyncPostCheckpoint (void) |
void | ProcessSyncRequests (void) |
void | RememberSyncRequest (const FileTag *ftag, SyncRequestType type) |
void | EnableSyncRequestForwarding (void) |
bool | RegisterSyncRequest (const FileTag *ftag, SyncRequestType type, bool retryOnError) |
typedef enum SyncRequestHandler SyncRequestHandler |
typedef enum SyncRequestType SyncRequestType |
enum SyncRequestHandler |
enum SyncRequestType |
void EnableSyncRequestForwarding | ( | void | ) |
Definition at line 577 of file sync.c.
References Assert, hash_destroy(), NIL, and ProcessSyncRequests().
Referenced by StartupXLOG().
void InitSync | ( | void | ) |
Definition at line 106 of file sync.c.
References ALLOCSET_DEFAULT_SIZES, AllocSetContextCreate, AmCheckpointerProcess, AmStartupProcess, HASHCTL::entrysize, HASH_BLOBS, HASH_CONTEXT, hash_create(), HASH_ELEM, HASHCTL::hcxt, IsUnderPostmaster, HASHCTL::keysize, MemoryContextAllowInCriticalSection(), MemSet, NIL, pendingOpsCxt, and TopMemoryContext.
Referenced by BaseInit().
void ProcessSyncRequests | ( | void | ) |
Definition at line 236 of file sync.c.
References AbsorbSyncRequests(), Assert, PendingFsyncEntry::canceled, CheckpointStats, CheckpointStatsData::ckpt_agg_sync_time, CheckpointStatsData::ckpt_longest_sync, CheckpointStatsData::ckpt_sync_rels, PendingFsyncEntry::cycle_ctr, data_sync_elevel(), DEBUG1, elog, enableFsync, ereport, errcode_for_file_access(), errmsg(), ERROR, FILE_POSSIBLY_DELETED, FSYNCS_PER_ABSORB, FileTag::handler, HASH_REMOVE, hash_search(), hash_seq_init(), hash_seq_search(), INSTR_TIME_GET_MICROSEC, INSTR_TIME_SET_CURRENT, INSTR_TIME_SUBTRACT, log_checkpoints, longest(), MAXPGPATH, sync_cycle_ctr, SyncOps::sync_syncfiletag, and PendingFsyncEntry::tag.
Referenced by CheckPointBuffers(), and EnableSyncRequestForwarding().
bool RegisterSyncRequest | ( | const FileTag * | ftag, |
SyncRequestType | type, | ||
bool | retryOnError | ||
) |
Definition at line 530 of file sync.c.
References ForwardSyncRequest(), pg_usleep(), and RememberSyncRequest().
Referenced by ForgetDatabaseSyncRequests(), register_dirty_segment(), register_forget_request(), and register_unlink_segment().
void RememberSyncRequest | ( | const FileTag * | ftag, |
SyncRequestType | type | ||
) |
Definition at line 435 of file sync.c.
References Assert, PendingFsyncEntry::canceled, checkpoint_cycle_ctr, PendingFsyncEntry::cycle_ctr, PendingUnlinkEntry::cycle_ctr, foreach_delete_current, FileTag::handler, HASH_ENTER, HASH_FIND, hash_search(), hash_seq_init(), hash_seq_search(), lappend(), lfirst, MemoryContextSwitchTo(), palloc(), pfree(), sync_cycle_ctr, SyncOps::sync_filetagmatches, SYNC_FILTER_REQUEST, SYNC_FORGET_REQUEST, SYNC_REQUEST, SYNC_UNLINK_REQUEST, PendingFsyncEntry::tag, and PendingUnlinkEntry::tag.
Referenced by AbsorbSyncRequests(), and RegisterSyncRequest().
void SyncPostCheckpoint | ( | void | ) |
Definition at line 174 of file sync.c.
References AbsorbSyncRequests(), checkpoint_cycle_ctr, PendingUnlinkEntry::cycle_ctr, ereport, errcode_for_file_access(), errmsg(), FileTag::handler, linitial, list_delete_first(), MAXPGPATH, NIL, pfree(), SyncOps::sync_unlinkfiletag, PendingUnlinkEntry::tag, UNLINKS_PER_ABSORB, and WARNING.
Referenced by CreateCheckPoint().
void SyncPreCheckpoint | ( | void | ) |
Definition at line 159 of file sync.c.
References checkpoint_cycle_ctr.
Referenced by CreateCheckPoint().