diff --git a/rudder/src/meta/object.rs b/rudder/src/meta/object.rs index 4c0582e..3812bdc 100644 --- a/rudder/src/meta/object.rs +++ b/rudder/src/meta/object.rs @@ -1,4 +1,3 @@ -use bytes::Bytes; use runkv_storage::ObjectStoreRef; use crate::error::{Error, Result}; @@ -17,28 +16,28 @@ impl ObjectMetaStore { Self { object_store, path } } - async fn put(&self, key: &Bytes, value: Bytes) -> Result<()> { + async fn put(&self, key: &Vec, value: Vec) -> Result<()> { self.object_store .put(&self.key(key), value) .await .map_err(Error::StorageError) } - async fn get(&self, key: &Bytes) -> Result> { + async fn get(&self, key: &Vec) -> Result>> { self.object_store .get(&self.key(key)) .await .map_err(Error::StorageError) } - async fn remove(&self, key: &Bytes) -> Result<()> { + async fn remove(&self, key: &Vec) -> Result<()> { self.object_store .remove(&self.key(key)) .await .map_err(Error::StorageError) } - fn key(&self, key: &Bytes) -> String { + fn key(&self, key: &Vec) -> String { format!("{}/{}", self.path, base64::encode(key)) } } @@ -57,8 +56,8 @@ mod tests { async fn test_crud() { let object_store = Arc::new(MemObjectStore::default()); let store = ObjectMetaStore::new(object_store, "meta-test".to_string()); - let key = Bytes::from_static(b"test-key"); - let value = Bytes::from_static(b"test-value"); + let key = b"test-key".to_vec(); + let value = b"test-value".to_vec(); store.put(&key, value.clone()).await.unwrap(); let fetched_value = store.get(&key).await.unwrap().unwrap(); assert_eq!(fetched_value, value); diff --git a/storage/src/lsm_tree/components/block.rs b/storage/src/lsm_tree/components/block.rs index aff0881..524c494 100644 --- a/storage/src/lsm_tree/components/block.rs +++ b/storage/src/lsm_tree/components/block.rs @@ -51,7 +51,7 @@ impl Block { let n_restarts = (&buf[buf.len() - 4..]).get_u32_le(); let data_len = buf.len() - 4 - n_restarts as usize * 4; let mut restart_points = Vec::with_capacity(n_restarts as usize); - let mut restart_points_buf = &buf[data_len..buf.len() - 4]; //fixme: remove mut + let mut restart_points_buf = &buf[data_len..buf.len() - 4]; // fixme: remove mut for _ in 0..n_restarts { restart_points.push(restart_points_buf.get_u32_le()); } @@ -247,7 +247,7 @@ impl BlockBuilder { // Update restart point if needed and calculate diff key. let diff_key = if self.entry_count % self.restart_count == 0 { self.restart_points.push(self.buf.len() as u32); - self.last_key = key.to_vec().into(); + self.last_key = key.to_vec(); key } else { key_diff(&self.last_key, key) @@ -264,7 +264,7 @@ impl BlockBuilder { self.buf.put_slice(diff_key); self.buf.put_slice(value); - self.last_key = key.to_vec().into(); + self.last_key = key.to_vec(); self.entry_count += 1; } diff --git a/storage/src/lsm_tree/components/sstable.rs b/storage/src/lsm_tree/components/sstable.rs index d95d236..93e10f9 100644 --- a/storage/src/lsm_tree/components/sstable.rs +++ b/storage/src/lsm_tree/components/sstable.rs @@ -404,7 +404,8 @@ mod tests { let begin = meta.block_metas[0].offset; let end = meta.block_metas[0].offset + meta.block_metas[0].len; - let mut bi = BlockIterator::new(Arc::new(Block::decode(data[begin..end].to_vec()).unwrap())); + let mut bi = + BlockIterator::new(Arc::new(Block::decode(data[begin..end].to_vec()).unwrap())); bi.seek(Seek::First).await.unwrap(); assert!(bi.is_valid()); assert_eq!(&full_key(b"k01", 1)[..], bi.key()); @@ -418,7 +419,8 @@ mod tests { let begin = meta.block_metas[1].offset; let end = meta.block_metas[1].offset + meta.block_metas[1].len; - let mut bi = BlockIterator::new(Arc::new(Block::decode(data[begin..end].to_vec()).unwrap())); + let mut bi = + BlockIterator::new(Arc::new(Block::decode(data[begin..end].to_vec()).unwrap())); bi.seek(Seek::First).await.unwrap(); assert!(bi.is_valid()); assert_eq!(&full_key(b"k04", 4)[..], bi.key()); @@ -454,7 +456,8 @@ mod tests { let begin = meta.block_metas[0].offset; let end = meta.block_metas[0].offset + meta.block_metas[0].len; - let mut bi = BlockIterator::new(Arc::new(Block::decode(data[begin..end].to_vec()).unwrap())); + let mut bi = + BlockIterator::new(Arc::new(Block::decode(data[begin..end].to_vec()).unwrap())); bi.seek(Seek::First).await.unwrap(); assert!(bi.is_valid()); assert_eq!(&full_key(b"k01", 1)[..], bi.key()); @@ -468,7 +471,8 @@ mod tests { let begin = meta.block_metas[1].offset; let end = meta.block_metas[1].offset + meta.block_metas[1].len; - let mut bi = BlockIterator::new(Arc::new(Block::decode(data[begin..end].to_vec()).unwrap())); + let mut bi = + BlockIterator::new(Arc::new(Block::decode(data[begin..end].to_vec()).unwrap())); bi.seek(Seek::First).await.unwrap(); assert!(bi.is_valid()); assert_eq!(&full_key(b"k04", 4)[..], bi.key()); diff --git a/storage/src/lsm_tree/iterator/user_key_iterator.rs b/storage/src/lsm_tree/iterator/user_key_iterator.rs index 8ccdc61..b0d2382 100644 --- a/storage/src/lsm_tree/iterator/user_key_iterator.rs +++ b/storage/src/lsm_tree/iterator/user_key_iterator.rs @@ -1,7 +1,6 @@ use async_recursion::async_recursion; use async_trait::async_trait; - use super::{BoxedIterator, Iterator, Seek}; use crate::utils::{full_key, timestamp, user_key, value}; use crate::Result; @@ -223,7 +222,7 @@ mod tests { .add( format!("k{:02}", k).as_bytes(), t as u64, - Some(&format!("v{:02}-{:02}", k, t).as_bytes()), + Some(format!("v{:02}-{:02}", k, t).as_bytes()), ) .unwrap(); } else {