append_frame should return a Completion

This commit is contained in:
pedrocarlo
2025-07-29 11:46:28 -03:00
parent be3793e9f1
commit 6edf65f752
2 changed files with 9 additions and 9 deletions

View File

@@ -968,7 +968,7 @@ impl Pager {
page
};
self.wal.borrow_mut().append_frame(
let c = self.wal.borrow_mut().append_frame(
page.clone(),
0,
self.flush_info.borrow().in_flight_writes.clone(),
@@ -1080,7 +1080,7 @@ impl Pager {
0
}
};
self.wal.borrow_mut().append_frame(
let c = self.wal.borrow_mut().append_frame(
page.clone(),
db_size,
self.commit_info.borrow().in_flight_writes.clone(),

View File

@@ -237,7 +237,7 @@ pub trait Wal {
page: PageRef,
db_size: u32,
write_counter: Rc<RefCell<usize>>,
) -> Result<()>;
) -> Result<Completion>;
/// Complete append of frames by updating shared wal state. Before this
/// all changes were stored locally.
@@ -310,8 +310,8 @@ impl Wal for DummyWAL {
_page: crate::PageRef,
_db_size: u32,
_write_counter: Rc<RefCell<usize>>,
) -> Result<()> {
Ok(())
) -> Result<Completion> {
Ok(Completion::new_write(|_| {}))
}
fn should_checkpoint(&self) -> bool {
@@ -758,12 +758,12 @@ impl Wal for WalFile {
page: PageRef,
db_size: u32,
write_counter: Rc<RefCell<usize>>,
) -> Result<()> {
) -> Result<Completion> {
let page_id = page.get().id;
let frame_id = self.max_frame + 1;
let offset = self.frame_offset(frame_id);
tracing::debug!(frame_id, offset, page_id);
let checksums = {
let (c, checksums) = {
let shared = self.get_shared();
let header = shared.wal_header.clone();
let header = header.lock();
@@ -799,10 +799,10 @@ impl Wal for WalFile {
*write_counter.borrow_mut() -= 1;
return Err(err);
}
frame_checksums
(result.unwrap(), frame_checksums)
};
self.complete_append_frame(page_id as u64, frame_id, checksums);
Ok(())
Ok(c)
}
#[instrument(skip_all, level = Level::DEBUG)]