Skip to content

Commit

Permalink
2/3: Postpone cloning the db_path
Browse files Browse the repository at this point in the history
Want access to it after the last init_wal for better errors
  • Loading branch information
rkuris committed Aug 3, 2023
1 parent 61d48a8 commit 58e486a
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 15 deletions.
2 changes: 1 addition & 1 deletion firewood/src/db.rs
Original file line number Diff line number Diff line change
Expand Up @@ -604,7 +604,7 @@ impl Db<CompactSpace<Node, StoreRevMut>> {
});

// recover from Wal
disk_requester.init_wal("wal", db_path);
disk_requester.init_wal("wal", &db_path);

let root_hash_staging = StoreRevMut::new(root_hash_cache);
let (data_staging, mut latest) = Db::new_store(&data_cache, reset, offset, cfg, &params)?;
Expand Down
29 changes: 15 additions & 14 deletions firewood/src/storage/buffer.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
//! Disk buffer for staging in memory pages and flushing them to disk.
use std::fmt::Debug;
use std::ops::IndexMut;
use std::path::{Path, PathBuf};
use std::rc::Rc;
use std::sync::Arc;
use std::{cell::RefCell, collections::HashMap};

use super::{AshRecord, FilePool, Page, StoreDelta, StoreError, WalConfig, PAGE_SIZE_NBIT};
use crate::storage::DeltaPage;
use aiofut::{AioBuilder, AioError, AioManager};
Expand All @@ -9,15 +16,6 @@ use growthring::{
WalFileImpl, WalStoreImpl,
};
use shale::SpaceId;
use std::{
cell::RefCell,
collections::HashMap,
fmt::Debug,
ops::IndexMut,
path::{Path, PathBuf},
rc::Rc,
sync::Arc,
};
use tokio::{
sync::{
mpsc,
Expand Down Expand Up @@ -581,9 +579,12 @@ impl DiskBufferRequester {
}

/// Initialize the Wal.
pub fn init_wal(&self, waldir: &str, rootpath: PathBuf) {
pub fn init_wal(&self, waldir: &str, rootpath: &Path) {
self.sender
.blocking_send(BufferCmd::InitWal(rootpath, waldir.to_string()))
.blocking_send(BufferCmd::InitWal(
rootpath.to_path_buf(),
waldir.to_string(),
))
.map_err(StoreError::Send)
.ok();
}
Expand Down Expand Up @@ -645,7 +646,7 @@ mod tests {
let state_path = file::touch_dir("state", &root_db_path).unwrap();
assert!(reset);
// create a new wal directory on top of root_db_fd
disk_requester.init_wal("wal", root_db_path);
disk_requester.init_wal("wal", &root_db_path);

// create a new state cache which tracks on disk state.
let state_cache = Arc::new(
Expand Down Expand Up @@ -733,7 +734,7 @@ mod tests {
let state_path = file::touch_dir("state", &root_db_path).unwrap();
assert!(reset);
// create a new wal directory on top of root_db_fd
disk_requester.init_wal("wal", root_db_path);
disk_requester.init_wal("wal", &root_db_path);

// create a new state cache which tracks on disk state.
let state_cache = Arc::new(
Expand Down Expand Up @@ -817,7 +818,7 @@ mod tests {
let state_path = file::touch_dir("state", &root_db_path).unwrap();
assert!(reset);
// create a new wal directory on top of root_db_fd
disk_requester.init_wal("wal", root_db_path);
disk_requester.init_wal("wal", &root_db_path);

// create a new state cache which tracks on disk state.
let state_cache = Arc::new(
Expand Down

0 comments on commit 58e486a

Please sign in to comment.