diff --git a/mini-lsm-starter/src/lsm_storage.rs b/mini-lsm-starter/src/lsm_storage.rs index 1f8c2e9..a544796 100644 --- a/mini-lsm-starter/src/lsm_storage.rs +++ b/mini-lsm-starter/src/lsm_storage.rs @@ -248,6 +248,10 @@ impl LsmStorageInner { .fetch_add(1, std::sync::atomic::Ordering::SeqCst) } + pub(crate) fn mvcc(&self) -> &LsmMvccInner { + self.mvcc.as_ref().unwrap() + } + /// Start the storage engine by either loading an existing directory or creating a new one if the directory does /// not exist. pub(crate) fn open(path: impl AsRef, options: LsmStorageOptions) -> Result { diff --git a/mini-lsm-starter/src/mvcc/watermark.rs b/mini-lsm-starter/src/mvcc/watermark.rs index 34b016f..56fb1cd 100644 --- a/mini-lsm-starter/src/mvcc/watermark.rs +++ b/mini-lsm-starter/src/mvcc/watermark.rs @@ -33,7 +33,7 @@ impl Watermark { pub fn remove_reader(&mut self, ts: u64) {} pub fn num_retained_snapshots(&self) -> usize { - 0 + self.readers.len() } pub fn watermark(&self) -> Option {