From 45c09c1cdd78f253057577bdf5b600fceb713866 Mon Sep 17 00:00:00 2001 From: anastasia Date: Thu, 2 Sep 2021 19:32:36 +0300 Subject: [PATCH] Add LayerMap.dump() funciton for debugging. Print timelineid in layer dumps --- .../src/layered_repository/delta_layer.rs | 4 +- .../src/layered_repository/image_layer.rs | 5 ++- .../src/layered_repository/inmemory_layer.rs | 45 ++++++------------- .../src/layered_repository/layer_map.rs | 17 +++++++ 4 files changed, 36 insertions(+), 35 deletions(-) diff --git a/pageserver/src/layered_repository/delta_layer.rs b/pageserver/src/layered_repository/delta_layer.rs index fccf477041..e081b32c55 100644 --- a/pageserver/src/layered_repository/delta_layer.rs +++ b/pageserver/src/layered_repository/delta_layer.rs @@ -285,8 +285,8 @@ impl Layer for DeltaLayer { /// debugging function to print out the contents of the layer fn dump(&self) -> Result<()> { println!( - "----- delta layer for {} {}-{} ----", - self.seg, self.start_lsn, self.end_lsn + "----- delta layer for tli {} seg {} {}-{} ----", + self.timelineid, self.seg, self.start_lsn, self.end_lsn ); println!("--- relsizes ---"); diff --git a/pageserver/src/layered_repository/image_layer.rs b/pageserver/src/layered_repository/image_layer.rs index 8796e43d9c..5397447482 100644 --- a/pageserver/src/layered_repository/image_layer.rs +++ b/pageserver/src/layered_repository/image_layer.rs @@ -193,7 +193,10 @@ impl Layer for ImageLayer { /// debugging function to print out the contents of the layer fn dump(&self) -> Result<()> { - println!("----- image layer for {} at {} ----", self.seg, self.lsn); + println!( + "----- image layer for tli {} seg {} at {} ----", + self.timelineid, self.seg, self.lsn + ); let inner = self.load()?; diff --git a/pageserver/src/layered_repository/inmemory_layer.rs b/pageserver/src/layered_repository/inmemory_layer.rs index b39612927f..361d47f0bb 100644 --- a/pageserver/src/layered_repository/inmemory_layer.rs +++ b/pageserver/src/layered_repository/inmemory_layer.rs @@ -241,16 +241,23 @@ impl Layer for InMemoryLayer { .unwrap_or_default(); println!( - "----- in-memory layer for {} {}-{} ----", - self.seg, self.start_lsn, end_str + "----- in-memory layer for tli {} seg {} {}-{} ----", + self.timelineid, self.seg, self.start_lsn, end_str ); for (k, v) in inner.segsizes.iter() { - println!("{}: {}", k, v); + println!("segsizes {}: {}", k, v); + } + + for (k, v) in inner.page_versions.iter() { + println!( + "blk {} at {}: {}/{}\n", + k.0, + k.1, + v.page_image.is_some(), + v.record.is_some() + ); } - //for (k, v) in inner.page_versions.iter() { - // println!("blk {} at {}: {}/{}", k.0, k.1, v.page_image.is_some(), v.record.is_some()); - //} Ok(()) } @@ -612,30 +619,4 @@ impl InMemoryLayer { Ok((frozen_layers, new_open_rc)) } - - /// debugging function to print out the contents of the layer - #[allow(unused)] - pub fn dump(&self) -> String { - let mut result = format!( - "----- inmemory layer for {} {}-> ----\n", - self.seg, self.start_lsn - ); - - let inner = self.inner.lock().unwrap(); - - for (k, v) in inner.segsizes.iter() { - result += &format!("{}: {}\n", k, v); - } - for (k, v) in inner.page_versions.iter() { - result += &format!( - "blk {} at {}: {}/{}\n", - k.0, - k.1, - v.page_image.is_some(), - v.record.is_some() - ); - } - - result - } } diff --git a/pageserver/src/layered_repository/layer_map.rs b/pageserver/src/layered_repository/layer_map.rs index b3a30f0fa0..edec9084c7 100644 --- a/pageserver/src/layered_repository/layer_map.rs +++ b/pageserver/src/layered_repository/layer_map.rs @@ -321,6 +321,23 @@ impl LayerMap { iter: None, } } + + /// debugging function to print out the contents of the layer map + #[allow(unused)] + pub fn dump(&self) -> Result<()> { + println!("Begin dump LayerMap"); + for (seg, segentry) in self.segs.iter() { + if let Some(open) = &segentry.open { + open.dump()?; + } + + for (_, layer) in segentry.historic.iter() { + layer.dump()?; + } + } + println!("End dump LayerMap"); + Ok(()) + } } impl Default for LayerMap {