mirror of
https://github.com/postgres/postgres.git
synced 2025-12-18 05:01:01 +03:00
Eliminate COPY FREEZE use of XLOG_HEAP2_VISIBLE
Instead of emitting a separate WAL XLOG_HEAP2_VISIBLE record for setting bits in the VM, specify the VM block changes in the XLOG_HEAP2_MULTI_INSERT record. This halves the number of WAL records emitted by COPY FREEZE. Author: Melanie Plageman <melanieplageman@gmail.com> Reviewed-by: Andres Freund <andres@anarazel.de> Reviewed-by: Robert Haas <robertmhaas@gmail.com> Reviewed-by: Kirill Reshke <reshkekirill@gmail.com> Discussion: https://postgr.es/m/flat/CAAKRu_ZMw6Npd_qm2KM%2BFwQ3cMOMx1Dh3VMhp8-V7SOLxdK9-g%40mail.gmail.com
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
#include "access/xlogdefs.h"
|
||||
#include "storage/block.h"
|
||||
#include "storage/buf.h"
|
||||
#include "storage/relfilelocator.h"
|
||||
#include "utils/relcache.h"
|
||||
|
||||
/* Macros for visibilitymap test */
|
||||
@@ -37,6 +38,9 @@ extern uint8 visibilitymap_set(Relation rel,
|
||||
Buffer vmBuf,
|
||||
TransactionId cutoff_xid,
|
||||
uint8 flags);
|
||||
extern uint8 visibilitymap_set_vmbits(BlockNumber heapBlk,
|
||||
Buffer vmBuf, uint8 flags,
|
||||
const RelFileLocator rlocator);
|
||||
extern uint8 visibilitymap_get_status(Relation rel, BlockNumber heapBlk, Buffer *vmbuf);
|
||||
extern void visibilitymap_count(Relation rel, BlockNumber *all_visible, BlockNumber *all_frozen);
|
||||
extern BlockNumber visibilitymap_prepare_truncate(Relation rel,
|
||||
|
||||
Reference in New Issue
Block a user