From b702af8ac08d2d2b7ebdf84b603268557412dc9c Mon Sep 17 00:00:00 2001 From: Jussi Saurio Date: Wed, 24 Sep 2025 08:05:53 +0300 Subject: [PATCH] mvcc: add truncate method to logical log --- core/mvcc/persistent_storage/logical_log.rs | 11 +++++++++++ core/mvcc/persistent_storage/mod.rs | 4 ++++ 2 files changed, 15 insertions(+) diff --git a/core/mvcc/persistent_storage/logical_log.rs b/core/mvcc/persistent_storage/logical_log.rs index 1ba1a07d1..a2b2f50c9 100644 --- a/core/mvcc/persistent_storage/logical_log.rs +++ b/core/mvcc/persistent_storage/logical_log.rs @@ -184,4 +184,15 @@ impl LogicalLog { let c = self.file.sync(completion)?; Ok(IOResult::IO(IOCompletions::Single(c))) } + + pub fn truncate(&mut self) -> Result> { + let completion = Completion::new_trunc(move |result| { + if let Err(err) = result { + tracing::error!("logical_log_truncate failed: {}", err); + } + }); + let c = self.file.truncate(0, completion)?; + self.offset = 0; + Ok(IOResult::IO(IOCompletions::Single(c))) + } } diff --git a/core/mvcc/persistent_storage/mod.rs b/core/mvcc/persistent_storage/mod.rs index cfe977a5f..58af1b849 100644 --- a/core/mvcc/persistent_storage/mod.rs +++ b/core/mvcc/persistent_storage/mod.rs @@ -31,6 +31,10 @@ impl Storage { pub fn sync(&self) -> Result> { self.logical_log.write().unwrap().sync() } + + pub fn truncate(&self) -> Result> { + self.logical_log.write().unwrap().truncate() + } } impl Debug for Storage {