From d6cf3476707550e0217c47517d4b239dd7d9417f Mon Sep 17 00:00:00 2001 From: Shany Pozin Date: Tue, 23 May 2023 15:48:43 +0300 Subject: [PATCH] Add an option to set "latest gc cutoff lsn" in pageserver binutils (#4290) ## Problem [#2539](https://github.com/neondatabase/neon/issues/2539) ## Summary of changes Add support for latest_gc_cutoff_lsn update in pageserver_binutils --- pageserver/src/bin/pageserver_binutils.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/pageserver/src/bin/pageserver_binutils.rs b/pageserver/src/bin/pageserver_binutils.rs index 94877b34b2..5e2d39d685 100644 --- a/pageserver/src/bin/pageserver_binutils.rs +++ b/pageserver/src/bin/pageserver_binutils.rs @@ -110,6 +110,18 @@ fn handle_metadata(path: &Path, arg_matches: &clap::ArgMatches) -> Result<(), an ); update_meta = true; } + if let Some(latest_gc_cuttoff) = arg_matches.get_one::("latest_gc_cuttoff") { + meta = TimelineMetadata::new( + meta.disk_consistent_lsn(), + meta.prev_record_lsn(), + meta.ancestor_timeline(), + meta.ancestor_lsn(), + Lsn::from_str(latest_gc_cuttoff)?, + meta.initdb_lsn(), + meta.pg_version(), + ); + update_meta = true; + } if update_meta { let metadata_bytes = meta.to_bytes()?; @@ -147,6 +159,11 @@ fn cli() -> Command { Arg::new("prev_record_lsn") .long("prev_record_lsn") .help("Replace previous record Lsn"), + ) + .arg( + Arg::new("latest_gc_cuttoff") + .long("latest_gc_cuttoff") + .help("Replace latest gc cuttoff"), ), ) }