From 2359106a9db9df4bd3ec0d93960be096e85e36b4 Mon Sep 17 00:00:00 2001 From: Konstantin Knizhnik Date: Thu, 6 Oct 2022 10:05:35 +0300 Subject: [PATCH] Fix writer creation in reconstruct_level0 --- pageserver/src/tenant/timeline.rs | 32 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/pageserver/src/tenant/timeline.rs b/pageserver/src/tenant/timeline.rs index 11639256a0..3c0b81a75b 100644 --- a/pageserver/src/tenant/timeline.rs +++ b/pageserver/src/tenant/timeline.rs @@ -1538,25 +1538,23 @@ impl Timeline { let mut last_key: Option = None; if let Some(last_delta_layer) = latest_delta_layer { for (key, lsn, _) in last_delta_layer.key_iter(true) { - match &writer { - Some(curr_writer) => { - if curr_writer.size() > target_file_size { - new_layers.push(writer.take().unwrap().finish(key)?); - writer = None; - } - } - _ => { - // Create writer if not initiaized yet - writer = Some(DeltaLayerWriter::new( - self.conf, - self.timeline_id, - self.tenant_id, - key, - last_delta_layer.get_lsn_range().clone(), - )?); + let value = self.get(key, lsn)?; + if let Some(curr_writer) = &writer { + if curr_writer.size() > target_file_size { + new_layers.push(writer.take().unwrap().finish(key)?); + writer = None; } } - let value = self.get(key, lsn)?; + // Create writer if not initiaized yet + if writer.is_none() { + writer = Some(DeltaLayerWriter::new( + self.conf, + self.timeline_id, + self.tenant_id, + key, + last_delta_layer.get_lsn_range().clone(), + )?); + } writer .as_mut() .unwrap()