diff options
author | Determinant <[email protected]> | 2020-06-17 23:06:09 -0400 |
---|---|---|
committer | Determinant <[email protected]> | 2020-06-17 23:06:09 -0400 |
commit | 33070682dcf1ec0bf9b22cd2ea38cf983a628f7d (patch) | |
tree | 954a4bfb2c00927b1c65ace3dfdddb22b6cda06e | |
parent | ac755fb17ec1a72361fa734dc453fa336e9f818f (diff) |
bump the version of libaio-futuresv0.1.3
-rw-r--r-- | Cargo.lock | 10 | ||||
-rw-r--r-- | Cargo.toml | 6 | ||||
-rw-r--r-- | src/lib.rs | 15 | ||||
-rw-r--r-- | src/wal.rs | 10 |
4 files changed, 23 insertions, 18 deletions
@@ -232,7 +232,7 @@ dependencies = [ [[package]] name = "growth-ring" -version = "0.1.2" +version = "0.1.3" dependencies = [ "async-trait", "crc", @@ -281,9 +281,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libaio-futures" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e831955e07aa19f495c993327d647d6a49bc9e5d6856238c00fd1833a1a06eee" +checksum = "e435ab17c42371feda64ba459de5a248980ba96c367c29d0c7c63ab6481fc563" dependencies = [ "crossbeam-channel", "libc", @@ -307,9 +307,9 @@ dependencies = [ [[package]] name = "lru" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28e0c685219cd60e49a2796bba7e4fe6523e10daca4fd721e84e7f905093d60c" +checksum = "297efb9401445cf7b6986a583d7ac194023334b46b294ff7da0d36662c1251c2" dependencies = [ "hashbrown", ] @@ -1,6 +1,6 @@ [package] name = "growth-ring" -version = "0.1.2" +version = "0.1.3" authors = ["Determinant <[email protected]>"] edition = "2018" homepage = "https://github.com/Determinant/growth-ring" @@ -12,12 +12,12 @@ description = "Simple and modular write-ahead-logging implementation." [dependencies] crc = "1.8.1" -lru = "0.5.1" +lru = "0.5.2" scan_fmt = "0.2.5" regex = "1.3.9" async-trait = "0.1.35" futures = "0.3.5" -libaio-futures = "0.1.2" +libaio-futures = "0.1.4" nix = "0.17.0" libc = "0.2.71" @@ -50,7 +50,7 @@ pub mod wal; use async_trait::async_trait; use futures::executor::block_on; -use libaiofut::{new_batch_scheduler, AIOBatchSchedulerIn, AIOManager}; +use libaiofut::{AIOBuilder, AIOManager}; use libc::off_t; use nix::fcntl::{fallocate, open, openat, FallocateFlags, OFlag}; use nix::sys::stat::Mode; @@ -62,14 +62,14 @@ use wal::{WALBytes, WALFile, WALPos, WALRingId, WALStore}; pub struct WALFileAIO { fd: RawFd, - aiomgr: Rc<AIOManager<AIOBatchSchedulerIn>>, + aiomgr: Rc<AIOManager>, } impl WALFileAIO { pub fn new( rootfd: RawFd, filename: &str, - aiomgr: Rc<AIOManager<AIOBatchSchedulerIn>>, + aiomgr: Rc<AIOManager>, ) -> Result<Self, ()> { openat( rootfd, @@ -137,7 +137,7 @@ pub struct WALStoreAIO<F: FnMut(WALBytes, WALRingId) -> Result<(), ()>> { rootfd: RawFd, rootpath: String, recover_func: RefCell<F>, - aiomgr: Rc<AIOManager<AIOBatchSchedulerIn>>, + aiomgr: Rc<AIOManager>, } impl<F: FnMut(WALBytes, WALRingId) -> Result<(), ()>> WALStoreAIO<F> { @@ -145,14 +145,13 @@ impl<F: FnMut(WALBytes, WALRingId) -> Result<(), ()>> WALStoreAIO<F> { wal_dir: &str, truncate: bool, recover_func: F, - aiomgr: Option<AIOManager<AIOBatchSchedulerIn>>, + aiomgr: Option<AIOManager>, ) -> Result<Self, ()> { let recover_func = RefCell::new(recover_func); let rootpath = wal_dir.to_string(); let aiomgr = Rc::new(aiomgr.ok_or(Err(())).or_else( - |_: Result<AIOManager<AIOBatchSchedulerIn>, ()>| { - AIOManager::new(new_batch_scheduler(None), 128, None, None) - .or(Err(())) + |_: Result<AIOManager, ()>| { + AIOBuilder::default().build().or(Err(())) }, )?); @@ -574,8 +574,8 @@ pub struct WALLoader { recover_policy: RecoverPolicy, } -impl WALLoader { - pub fn new() -> Self { +impl Default for WALLoader { + fn default() -> Self { WALLoader { file_nbit: 22, // 4MB block_nbit: 15, // 32KB, @@ -583,6 +583,12 @@ impl WALLoader { recover_policy: RecoverPolicy::Strict } } +} + +impl WALLoader { + pub fn new() -> Self { + Default::default() + } pub fn file_nbit(&mut self, v: u8) -> &mut Self { self.file_nbit = v; |