Mercurial > lbo > hg > leveldb-rs
changeset 366:8ae87daebe4a
version/version_set: Move two methods to Version
author | Lewin Bormann <lbo@spheniscida.de> |
---|---|
date | Sun, 08 Oct 2017 11:46:05 +0200 |
parents | f7df71486099 |
children | 821c6108558f |
files | src/db_impl.rs src/version.rs src/version_set.rs |
diffstat | 3 files changed, 25 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/src/db_impl.rs Sat Oct 07 21:36:47 2017 +0200 +++ b/src/db_impl.rs Sun Oct 08 11:46:05 2017 +0200 @@ -667,6 +667,11 @@ } fn do_compaction_work(&mut self, cs: &mut CompactionState) -> Result<()> { + { + let current = self.vset.borrow().current(); + assert!(current.borrow().num_level_files(cs.compaction.level()) > 0); + assert!(cs.builder.is_none()); + } let start_ts = self.opt.env.micros(); log!(self.opt.log, "Compacting {} files at L{} and {} files at L{}", @@ -674,8 +679,6 @@ cs.compaction.level(), cs.compaction.num_inputs(1), cs.compaction.level() + 1); - assert!(self.vset.borrow().num_level_files(cs.compaction.level()) > 0); - assert!(cs.builder.is_none()); let mut input = self.vset.borrow().make_input_iterator(&cs.compaction); input.seek_to_first();
--- a/src/version.rs Sat Oct 07 21:36:47 2017 +0200 +++ b/src/version.rs Sun Oct 08 11:46:05 2017 +0200 @@ -44,6 +44,17 @@ } } + pub fn num_level_bytes(&self, l: usize) -> usize { + assert!(l < NUM_LEVELS); + total_size(self.files[l].iter()) + } + + pub fn num_level_files(&self, l: usize) -> usize { + assert!(l < NUM_LEVELS); + self.files[l].len() + } + + /// get returns the value for the specified key using the persistent tables contained in this /// Version. #[allow(unused_assignments)]
--- a/src/version_set.rs Sat Oct 07 21:36:47 2017 +0200 +++ b/src/version_set.rs Sun Oct 08 11:46:05 2017 +0200 @@ -210,18 +210,6 @@ self.current.as_ref().unwrap().clone() } - fn num_level_bytes(&self, l: usize) -> usize { - assert!(l < NUM_LEVELS); - assert!(self.current.is_some()); - total_size(self.current.as_ref().unwrap().borrow().files[l].iter()) - } - - pub fn num_level_files(&self, l: usize) -> usize { - assert!(l < NUM_LEVELS); - assert!(self.current.is_some()); - self.current.as_ref().unwrap().borrow().files[l].len() - } - pub fn add_version(&mut self, v: Version) { let sv = share(v); self.current = Some(sv.clone()); @@ -1040,14 +1028,17 @@ // live_files() assert_eq!(9, vs.live_files().len()); assert!(vs.live_files().contains(&3)); + + let v = vs.current(); + let v = v.borrow(); // num_level_bytes() - assert_eq!(434, vs.num_level_bytes(0)); - assert_eq!(651, vs.num_level_bytes(1)); - assert_eq!(468, vs.num_level_bytes(2)); + assert_eq!(434, v.num_level_bytes(0)); + assert_eq!(651, v.num_level_bytes(1)); + assert_eq!(468, v.num_level_bytes(2)); // num_level_files() - assert_eq!(2, vs.num_level_files(0)); - assert_eq!(3, vs.num_level_files(1)); - assert_eq!(2, vs.num_level_files(2)); + assert_eq!(2, v.num_level_files(0)); + assert_eq!(3, v.num_level_files(1)); + assert_eq!(2, v.num_level_files(2)); // new_file_number() assert_eq!(2, vs.new_file_number()); assert_eq!(3, vs.new_file_number());