From 915001c67e4a09b5ece32803783b24f4df1a95c2 Mon Sep 17 00:00:00 2001 From: Konstantin Knizhnik Date: Mon, 22 Nov 2021 20:05:34 +0300 Subject: [PATCH] Fix clippy warnings --- Cargo.lock | 2 ++ pageserver/src/buffered_repository.rs | 20 ++++++++++---------- pageserver/src/toast_store.rs | 23 ++++++++++------------- 3 files changed, 22 insertions(+), 23 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f842c55a12..e6e2041c0d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2572,6 +2572,8 @@ checksum = "b07db065a5cf61a7e4ba64f29e67db906fb1787316516c4e6e5ff0fea1efcd8a" [[package]] name = "yakv" version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae1ec7c67193f20a10b113492c57f097c34958d5bdc3c974a65361559aa21d9" dependencies = [ "anyhow", "fs2", diff --git a/pageserver/src/buffered_repository.rs b/pageserver/src/buffered_repository.rs index b5c6babc6a..3663d73398 100644 --- a/pageserver/src/buffered_repository.rs +++ b/pageserver/src/buffered_repository.rs @@ -300,7 +300,7 @@ impl BufferedRepository { fn get_buffered_timeline(&self, timelineid: ZTimelineId) -> Result> { let mut timelines = self.timelines.lock().unwrap(); - Ok(self.get_timeline_locked(timelineid, &mut timelines)?) + self.get_timeline_locked(timelineid, &mut timelines) } // Implementation of the public `get_timeline` function. This differs from the public @@ -406,7 +406,7 @@ impl BufferedRepository { .lock() .unwrap() .iter() - .map(|pair| (pair.0.clone(), pair.1.clone())) + .map(|pair| (*pair.0, pair.1.clone())) .collect(); //let timelines = self.timelines.lock().unwrap(); for (timelineid, timeline) in timelines.iter() { @@ -954,9 +954,9 @@ impl Timeline for BufferedTimeline { let mut dropped: HashSet = HashSet::new(); let store = self.store.read().unwrap(); 'meta: loop { - let mut iter = store.data.range(&from.ser()?..); + let iter = store.data.range(&from.ser()?..); - while let Some(entry) = iter.next() { + for entry in iter { let pair = entry?; if let StoreKey::Metadata(dk) = StoreKey::des(&pair.0)? { // processing metadata @@ -1006,8 +1006,8 @@ impl Timeline for BufferedTimeline { let mut from_blknum = 0; let mut page_versions: Vec<(u32, Lsn, PageVersion)> = Vec::new(); 'pages: loop { - let mut iter = store.data.range(&from.ser()?..); - while let Some(entry) = iter.next() { + let iter = store.data.range(&from.ser()?..); + for entry in iter { let pair = entry?; if let StoreKey::Data(dk) = StoreKey::des(&pair.0)? { let same_seg = from_rel == dk.rel @@ -1586,11 +1586,11 @@ impl BufferedTimeline { 'meta: loop { let store = self.store.read().unwrap(); - let mut iter = store.data.range(&from.ser()?..); + let iter = store.data.range(&from.ser()?..); // We can not remove deteriorated version immediately, we need to check first that successor exists let mut last_key: Option = None; - while let Some(entry) = iter.next() { + for entry in iter { let pair = entry?; let raw_key = pair.0; let key = StoreKey::des(&raw_key)?; @@ -1665,9 +1665,9 @@ impl BufferedTimeline { let mut from_blknum = 0; 'pages: loop { let store = self.store.read().unwrap(); - let mut iter = store.data.range(&from.ser()?..); + let iter = store.data.range(&from.ser()?..); deteriorated.clear(); - while let Some(entry) = iter.next() { + for entry in iter { let pair = entry?; let raw_key = pair.0; let key = StoreKey::des(&raw_key)?; diff --git a/pageserver/src/toast_store.rs b/pageserver/src/toast_store.rs index 22b2715bc2..7d4fe7c596 100644 --- a/pageserver/src/toast_store.rs +++ b/pageserver/src/toast_store.rs @@ -3,7 +3,6 @@ use lz4_flex; use std::convert::TryInto; use std::ops::{Bound, RangeBounds}; use std::path::Path; -use tracing::*; use zenith_utils::lsn::Lsn; use yakv::storage::{Key, Storage, StorageConfig, StorageIterator, Value}; @@ -32,7 +31,7 @@ impl<'a> Iterator for ToastIterator<'a> { fn next(&mut self) -> Option { let mut toast: Option> = None; let mut next_segno = 0u16; - while let Some(elem) = self.iter.next() { + for elem in &mut self.iter { if let Ok((key, value)) = elem { let key_len = key.len(); let n_segments = @@ -73,7 +72,7 @@ impl<'a> DoubleEndedIterator for ToastIterator<'a> { let mut next_segno = 0u16; while let Some(elem) = self.iter.next_back() { if let Ok((key, value)) = elem { - assert!(value.len() != 0); + assert!(!value.is_empty()); let key_len = key.len(); let n_segments = u16::from_be_bytes(key[key_len - 4..key_len - 2].try_into().unwrap()); @@ -95,10 +94,7 @@ impl<'a> DoubleEndedIterator for ToastIterator<'a> { next_segno = segno; if next_segno == 0 { let toast = toast.unwrap(); - if toast.len() == 0 { - warn!("n_segments={}", n_segments); - } - assert!(toast.len() != 0); + assert!(!toast.is_empty()); let res = lz4_flex::decompress_size_prepended(&toast); return Some(if let Ok(decompressed_data) = res { Ok((key, decompressed_data)) @@ -135,10 +131,11 @@ impl ToastStore { }) } - pub fn put(&mut self, key: &Key, value: &Value) -> Result<()> { + pub fn put(&mut self, key: &[u8], value: &[u8]) -> Result<()> { let mut tx = self.db.start_transaction(); let value_len = value.len(); - let mut key = key.clone(); + let mut key = key.to_vec(); + let value = &value.to_vec(); if value_len >= TOAST_SEGMENT_SIZE { let compressed_data = lz4_flex::compress_prepend_size(value); let compressed_data_len = compressed_data.len(); @@ -214,15 +211,15 @@ impl ToastStore { } } - pub fn remove(&mut self, key: &Key) -> Result<()> { + pub fn remove(&mut self, key: &[u8]) -> Result<()> { let mut tx = self.db.start_transaction(); - let mut min_key = key.clone(); - let mut max_key = key.clone(); + let mut min_key = key.to_vec(); + let mut max_key = key.to_vec(); min_key.extend_from_slice(&[0u8; 4]); max_key.extend_from_slice(&[0xFFu8; 4]); let mut iter = tx.range(&min_key..&max_key); if let Some(entry) = iter.next() { - let mut key = entry?.0.clone(); + let mut key = entry?.0; let key_len = key.len(); let n_segments = u16::from_be_bytes(key[key_len - 4..key_len - 2].try_into().unwrap()); if n_segments != 0 {