1
0
mirror of https://github.com/postgres/postgres.git synced 2025-10-29 22:49:41 +03:00

Revert "Allow on-line enabling and disabling of data checksums"

This reverts the backend sides of commit 1fde38beaa.
I have, at least for now, left the pg_verify_checksums tool in place, as
this tool can be very valuable without the rest of the patch as well,
and since it's a read-only tool that only runs when the cluster is down
it should be a lot safer.
This commit is contained in:
Magnus Hagander
2018-04-09 19:02:42 +02:00
parent 03c11796a9
commit a228cc13ae
39 changed files with 34 additions and 1658 deletions

View File

@@ -154,7 +154,7 @@ extern PGDLLIMPORT int wal_level;
* of the bits make it to disk, but the checksum wouldn't match. Also WAL-log
* them if forced by wal_log_hints=on.
*/
#define XLogHintBitIsNeeded() (DataChecksumsNeedWrite() || wal_log_hints)
#define XLogHintBitIsNeeded() (DataChecksumsEnabled() || wal_log_hints)
/* Do we need to WAL-log information required only for Hot Standby and logical replication? */
#define XLogStandbyInfoActive() (wal_level >= WAL_LEVEL_REPLICA)
@@ -257,13 +257,7 @@ extern char *XLogFileNameP(TimeLineID tli, XLogSegNo segno);
extern void UpdateControlFile(void);
extern uint64 GetSystemIdentifier(void);
extern char *GetMockAuthenticationNonce(void);
extern bool DataChecksumsNeedWrite(void);
extern bool DataChecksumsNeedVerify(void);
extern bool DataChecksumsInProgress(void);
extern void SetDataChecksumsInProgress(void);
extern void SetDataChecksumsOn(void);
extern void SetDataChecksumsOff(void);
extern const char *show_data_checksums(void);
extern bool DataChecksumsEnabled(void);
extern XLogRecPtr GetFakeLSNForUnloggedRel(void);
extern Size XLOGShmemSize(void);
extern void XLOGShmemInit(void);

View File

@@ -25,7 +25,6 @@
#include "lib/stringinfo.h"
#include "pgtime.h"
#include "storage/block.h"
#include "storage/checksum.h"
#include "storage/relfilenode.h"
@@ -241,12 +240,6 @@ typedef struct xl_restore_point
char rp_name[MAXFNAMELEN];
} xl_restore_point;
/* Information logged when checksum level is changed */
typedef struct xl_checksum_state
{
ChecksumType new_checksumtype;
} xl_checksum_state;
/* End of recovery mark, when we don't do an END_OF_RECOVERY checkpoint */
typedef struct xl_end_of_recovery
{

View File

@@ -76,7 +76,6 @@ typedef struct CheckPoint
#define XLOG_END_OF_RECOVERY 0x90
#define XLOG_FPI_FOR_HINT 0xA0
#define XLOG_FPI 0xB0
#define XLOG_CHECKSUMS 0xC0
/*

View File

@@ -10169,14 +10169,6 @@
proargnames => '{max_data_alignment,database_block_size,blocks_per_segment,wal_block_size,bytes_per_wal_segment,max_identifier_length,max_index_columns,max_toast_chunk_size,large_object_chunk_size,float4_pass_by_value,float8_pass_by_value,data_page_checksum_version}',
prosrc => 'pg_control_init' },
{ oid => '3996', descr => 'disable data checksums',
proname => 'pg_disable_data_checksums', provolatile => 'v',
prorettype => 'void', proargtypes => '', prosrc => 'disable_data_checksums' },
{ oid => '3998', descr => 'enable data checksums',
proname => 'pg_enable_data_checksums', provolatile => 'v',
prorettype => 'void', proargtypes => 'int4 int4',
proargnames => '{cost_delay,cost_limit}', prosrc => 'enable_data_checksums' },
# collation management functions
{ oid => '3445', descr => 'import collations from operating system',
proname => 'pg_import_system_collations', procost => '100',

View File

@@ -710,9 +710,7 @@ typedef enum BackendType
B_STARTUP,
B_WAL_RECEIVER,
B_WAL_SENDER,
B_WAL_WRITER,
B_CHECKSUMHELPER_LAUNCHER,
B_CHECKSUMHELPER_WORKER
B_WAL_WRITER
} BackendType;

View File

@@ -1,31 +0,0 @@
/*-------------------------------------------------------------------------
*
* checksumhelper.h
* header file for checksum helper background worker
*
*
* Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* src/include/postmaster/checksumhelper.h
*
*-------------------------------------------------------------------------
*/
#ifndef CHECKSUMHELPER_H
#define CHECKSUMHELPER_H
/* Shared memory */
extern Size ChecksumHelperShmemSize(void);
extern void ChecksumHelperShmemInit(void);
/* Start the background processes for enabling checksums */
bool StartChecksumHelperLauncher(int cost_delay, int cost_limit);
/* Shutdown the background processes, if any */
void ShutdownChecksumHelperIfRunning(void);
/* Background worker entrypoints */
void ChecksumHelperLauncherMain(Datum arg);
void ChecksumHelperWorkerMain(Datum arg);
#endif /* CHECKSUMHELPER_H */

View File

@@ -194,7 +194,6 @@ typedef PageHeaderData *PageHeader;
*/
#define PG_PAGE_LAYOUT_VERSION 4
#define PG_DATA_CHECKSUM_VERSION 1
#define PG_DATA_CHECKSUM_INPROGRESS_VERSION 2
/* ----------------------------------------------------------------
* page support macros

View File

@@ -15,13 +15,6 @@
#include "storage/block.h"
typedef enum ChecksumType
{
DATA_CHECKSUMS_OFF = 0,
DATA_CHECKSUMS_ON,
DATA_CHECKSUMS_INPROGRESS
} ChecksumType;
/*
* Compute the checksum for a Postgres page. The page must be aligned on a
* 4-byte boundary.