From 1dc4bf4bd5fe09613c4020158910c83cf38ef6b5 Mon Sep 17 00:00:00 2001 From: lxc Date: Tue, 6 May 2025 22:37:54 +0800 Subject: [PATCH 1/2] Fix wrong input type of put_batch Update wal.rs --- mini-lsm-starter/src/wal.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mini-lsm-starter/src/wal.rs b/mini-lsm-starter/src/wal.rs index 25329ae5d..e85289147 100644 --- a/mini-lsm-starter/src/wal.rs +++ b/mini-lsm-starter/src/wal.rs @@ -19,12 +19,13 @@ use std::fs::File; use std::io::BufWriter; use std::path::Path; use std::sync::Arc; - use anyhow::Result; use bytes::Bytes; use crossbeam_skiplist::SkipMap; use parking_lot::Mutex; +use crate::key::KeySlice; + pub struct Wal { file: Arc>>, } @@ -43,7 +44,7 @@ impl Wal { } /// Implement this in week 3, day 5. - pub fn put_batch(&self, _data: &[(&[u8], &[u8])]) -> Result<()> { + pub fn put_batch(&self, _data: &[(KeySlice, &[u8])]) -> Result<()> { unimplemented!() } From a321f07bca72505d8118f7266bb0e142603528f9 Mon Sep 17 00:00:00 2001 From: Alex Chi Date: Sat, 31 May 2025 14:06:49 +0800 Subject: [PATCH 2/2] fix Signed-off-by: Alex Chi --- mini-lsm-starter/src/mem_table.rs | 2 +- mini-lsm-starter/src/wal.rs | 10 +++++----- mini-lsm/src/mem_table.rs | 2 +- mini-lsm/src/wal.rs | 6 ++++-- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/mini-lsm-starter/src/mem_table.rs b/mini-lsm-starter/src/mem_table.rs index c854ad79e..15e05d8e2 100644 --- a/mini-lsm-starter/src/mem_table.rs +++ b/mini-lsm-starter/src/mem_table.rs @@ -99,7 +99,7 @@ impl MemTable { unimplemented!() } - /// Implement this in week 3, day 5. + /// Implement this in week 3, day 5; if you want to implement this earlier, use `&[u8]` as the key type. pub fn put_batch(&self, _data: &[(KeySlice, &[u8])]) -> Result<()> { unimplemented!() } diff --git a/mini-lsm-starter/src/wal.rs b/mini-lsm-starter/src/wal.rs index e85289147..c9172a9ed 100644 --- a/mini-lsm-starter/src/wal.rs +++ b/mini-lsm-starter/src/wal.rs @@ -15,14 +15,14 @@ #![allow(unused_variables)] // TODO(you): remove this lint after implementing this mod #![allow(dead_code)] // TODO(you): remove this lint after implementing this mod -use std::fs::File; -use std::io::BufWriter; -use std::path::Path; -use std::sync::Arc; use anyhow::Result; use bytes::Bytes; use crossbeam_skiplist::SkipMap; use parking_lot::Mutex; +use std::fs::File; +use std::io::BufWriter; +use std::path::Path; +use std::sync::Arc; use crate::key::KeySlice; @@ -43,7 +43,7 @@ impl Wal { unimplemented!() } - /// Implement this in week 3, day 5. + /// Implement this in week 3, day 5; if you want to implement this earlier, use `&[u8]` as the key type. pub fn put_batch(&self, _data: &[(KeySlice, &[u8])]) -> Result<()> { unimplemented!() } diff --git a/mini-lsm/src/mem_table.rs b/mini-lsm/src/mem_table.rs index 74b72a7bd..6460be965 100644 --- a/mini-lsm/src/mem_table.rs +++ b/mini-lsm/src/mem_table.rs @@ -121,7 +121,7 @@ impl MemTable { Ok(()) } - /// Implement this in week 3, day 5. + /// Implement this in week 3, day 5; if you want to implement this earlier, use `&[u8]` as the key type. pub fn put_batch(&self, _data: &[(KeySlice, &[u8])]) -> Result<()> { unimplemented!() } diff --git a/mini-lsm/src/wal.rs b/mini-lsm/src/wal.rs index 2bd5812fc..739478ef6 100644 --- a/mini-lsm/src/wal.rs +++ b/mini-lsm/src/wal.rs @@ -23,6 +23,8 @@ use bytes::{Buf, BufMut, Bytes}; use crossbeam_skiplist::SkipMap; use parking_lot::Mutex; +use crate::key::KeySlice; + pub struct Wal { file: Arc>>, } @@ -93,8 +95,8 @@ impl Wal { Ok(()) } - /// Implement this in week 3, day 5. - pub fn put_batch(&self, _data: &[(&[u8], &[u8])]) -> Result<()> { + /// Implement this in week 3, day 5; if you want to implement this earlier, use `&[u8]` as the key type. + pub fn put_batch(&self, _data: &[(KeySlice, &[u8])]) -> Result<()> { unimplemented!() }