From 4f280c2953f3a45adefe50c0309018ee49a73c67 Mon Sep 17 00:00:00 2001 From: arpad-m Date: Fri, 7 Jul 2023 16:53:14 +0200 Subject: [PATCH] Small pageserver cleanups (#4657) ## Problem I was reading the code of the page server today and found these minor things that I thought could be cleaned up. ## Summary of changes * remove a redundant indentation layer and continue in the flushing loop * use the builtin `PartialEq` check instead of hand-rolling a `range_eq` function * Add a missing `>` to a prominent doc comment --- pageserver/src/tenant/layer_map.rs | 5 ++--- pageserver/src/tenant/storage_layer.rs | 7 ------- pageserver/src/tenant/storage_layer/delta_layer.rs | 2 +- pageserver/src/tenant/timeline.rs | 12 ++++-------- pageserver/src/walredo.rs | 4 ++-- 5 files changed, 9 insertions(+), 21 deletions(-) diff --git a/pageserver/src/tenant/layer_map.rs b/pageserver/src/tenant/layer_map.rs index dee02ac433..1c407d7133 100644 --- a/pageserver/src/tenant/layer_map.rs +++ b/pageserver/src/tenant/layer_map.rs @@ -60,7 +60,6 @@ use utils::lsn::Lsn; use historic_layer_coverage::BufferedHistoricLayerCoverage; pub use historic_layer_coverage::LayerKey; -use super::storage_layer::range_eq; use super::storage_layer::PersistentLayerDesc; /// @@ -365,7 +364,7 @@ impl LayerMap { } pub fn is_l0(layer: &PersistentLayerDesc) -> bool { - range_eq(&layer.get_key_range(), &(Key::MIN..Key::MAX)) + layer.get_key_range() == (Key::MIN..Key::MAX) } /// This function determines which layers are counted in `count_deltas`: @@ -397,7 +396,7 @@ impl LayerMap { } // Case 2 - if range_eq(partition_range, &(Key::MIN..Key::MAX)) { + if partition_range == &(Key::MIN..Key::MAX) { return true; } diff --git a/pageserver/src/tenant/storage_layer.rs b/pageserver/src/tenant/storage_layer.rs index d35eccfc72..f2aaa7cec6 100644 --- a/pageserver/src/tenant/storage_layer.rs +++ b/pageserver/src/tenant/storage_layer.rs @@ -54,13 +54,6 @@ where } } -pub fn range_eq(a: &Range, b: &Range) -> bool -where - T: PartialEq, -{ - a.start == b.start && a.end == b.end -} - /// Struct used to communicate across calls to 'get_value_reconstruct_data'. /// /// Before first call, you can fill in 'page_img' if you have an older cached diff --git a/pageserver/src/tenant/storage_layer/delta_layer.rs b/pageserver/src/tenant/storage_layer/delta_layer.rs index 2591beef3e..c92a2898e4 100644 --- a/pageserver/src/tenant/storage_layer/delta_layer.rs +++ b/pageserver/src/tenant/storage_layer/delta_layer.rs @@ -10,7 +10,7 @@ //! The delta files are stored in timelines/ directory. Currently, //! there are no subdirectories, and each delta file is named like this: //! -//! -__--__- //! //! For example: //! diff --git a/pageserver/src/tenant/timeline.rs b/pageserver/src/tenant/timeline.rs index 4a80708b4a..626729859c 100644 --- a/pageserver/src/tenant/timeline.rs +++ b/pageserver/src/tenant/timeline.rs @@ -2808,14 +2808,10 @@ impl Timeline { layers.frozen_layers.front().cloned() // drop 'layers' lock to allow concurrent reads and writes }; - if let Some(layer_to_flush) = layer_to_flush { - if let Err(err) = self.flush_frozen_layer(layer_to_flush, ctx).await { - error!("could not flush frozen layer: {err:?}"); - break Err(err); - } - continue; - } else { - break Ok(()); + let Some(layer_to_flush) = layer_to_flush else { break Ok(()) }; + if let Err(err) = self.flush_frozen_layer(layer_to_flush, ctx).await { + error!("could not flush frozen layer: {err:?}"); + break Err(err); } }; // Notify any listeners that we're done diff --git a/pageserver/src/walredo.rs b/pageserver/src/walredo.rs index 98730a7637..8bac8ed42d 100644 --- a/pageserver/src/walredo.rs +++ b/pageserver/src/walredo.rs @@ -175,8 +175,8 @@ impl WalRedoManager for PostgresRedoManager { let mut img = base_img.map(|p| p.1); let mut batch_neon = can_apply_in_neon(&records[0].1); let mut batch_start = 0; - for i in 1..records.len() { - let rec_neon = can_apply_in_neon(&records[i].1); + for (i, record) in records.iter().enumerate().skip(1) { + let rec_neon = can_apply_in_neon(&record.1); if rec_neon != batch_neon { let result = if batch_neon {