diff --git a/pageserver/src/object_repository.rs b/pageserver/src/object_repository.rs index 394fd2ad4c..1dc8a367e2 100644 --- a/pageserver/src/object_repository.rs +++ b/pageserver/src/object_repository.rs @@ -506,8 +506,6 @@ impl Timeline for ObjectTimeline { let key = relation_size_key(self.timelineid, rel); let val = ObjectValue::RelationSize(nblocks); - info!("Truncate relation {} to {} blocks at {}", rel, nblocks, lsn); - self.obj_store.put(&key, lsn, &ObjectValue::ser(&val)?)?; let mut rel_meta = self.rel_meta.write().unwrap(); rel_meta.insert( diff --git a/pageserver/src/waldecoder.rs b/pageserver/src/waldecoder.rs index 0376e534a3..cf12c6433c 100644 --- a/pageserver/src/waldecoder.rs +++ b/pageserver/src/waldecoder.rs @@ -1181,6 +1181,19 @@ pub fn decode_wal_record(checkpoint: &mut CheckPoint, record: Bytes) -> DecodedW if next_oid > checkpoint.nextOid { checkpoint.nextOid = next_oid; } + } else if info == pg_constants::XLOG_CHECKPOINT_ONLINE + || info == pg_constants::XLOG_CHECKPOINT_SHUTDOWN + { + let mut checkpoint_bytes = [0u8; SIZEOF_CHECKPOINT]; + buf.copy_to_slice(&mut checkpoint_bytes); + let xlog_checkpoint = CheckPoint::decode(&checkpoint_bytes).unwrap(); + trace!( + "xlog_checkpoint.oldestXid={}, checkpoint.oldestXid={}", + xlog_checkpoint.oldestXid, checkpoint.oldestXid + ); + if (checkpoint.oldestXid.wrapping_sub(xlog_checkpoint.oldestXid) as i32) < 0 { + checkpoint.oldestXid = xlog_checkpoint.oldestXid; + } } } diff --git a/pageserver/src/walredo.rs b/pageserver/src/walredo.rs index 947c4851d6..12cfc6bf50 100644 --- a/pageserver/src/walredo.rs +++ b/pageserver/src/walredo.rs @@ -445,7 +445,7 @@ impl PostgresRedoManagerInternal { transaction_id_set_status(xid, status, &mut page); } } else if info == pg_constants::XLOG_XACT_PREPARE { - info!("Apply prepare {} record", xlogrec.xl_xid); + trace!("Apply prepare {} record", xlogrec.xl_xid); page.clear(); page.extend_from_slice(&buf[..]); } else { diff --git a/postgres_ffi/src/pg_constants.rs b/postgres_ffi/src/pg_constants.rs index ab28511e37..b8aeebafa6 100644 --- a/postgres_ffi/src/pg_constants.rs +++ b/postgres_ffi/src/pg_constants.rs @@ -182,4 +182,5 @@ pub const WAL_SEGMENT_SIZE: usize = 16 * 1024 * 1024; pub const XLOG_BLCKSZ: usize = 8192; pub const XLOG_CHECKPOINT_SHUTDOWN: u8 = 0x00; +pub const XLOG_CHECKPOINT_ONLINE: u8 = 0x10; pub const XLP_LONG_HEADER: u16 = 0x0002;