diff --git a/src/database/map.rs b/src/database/map.rs index 33cae594..97e90659 100644 --- a/src/database/map.rs +++ b/src/database/map.rs @@ -34,7 +34,8 @@ use conduwuit::Result; use rocksdb::{AsColumnFamilyRef, ColumnFamily, ReadOptions, WriteOptions}; pub(crate) use self::options::{ - cache_read_options_default, iter_options_default, read_options_default, write_options_default, + cache_iter_options_default, cache_read_options_default, iter_options_default, + read_options_default, write_options_default, }; use crate::{watchers::Watchers, Engine}; diff --git a/src/database/map/options.rs b/src/database/map/options.rs index 90dc0261..f726036d 100644 --- a/src/database/map/options.rs +++ b/src/database/map/options.rs @@ -2,24 +2,33 @@ use rocksdb::{ReadOptions, ReadTier, WriteOptions}; #[inline] pub(crate) fn iter_options_default() -> ReadOptions { - let mut read_options = read_options_default(); - read_options.set_background_purge_on_iterator_cleanup(true); - //read_options.set_pin_data(true); - read_options + let mut options = read_options_default(); + options.set_background_purge_on_iterator_cleanup(true); + //options.set_pin_data(true); + options +} + +#[inline] +pub(crate) fn cache_iter_options_default() -> ReadOptions { + let mut options = cache_read_options_default(); + options.set_background_purge_on_iterator_cleanup(true); + //options.set_pin_data(true); + options } #[inline] pub(crate) fn cache_read_options_default() -> ReadOptions { - let mut read_options = read_options_default(); - read_options.set_read_tier(ReadTier::BlockCache); - read_options + let mut options = read_options_default(); + options.set_read_tier(ReadTier::BlockCache); + options.fill_cache(false); + options } #[inline] pub(crate) fn read_options_default() -> ReadOptions { - let mut read_options = ReadOptions::default(); - read_options.set_total_order_seek(true); - read_options + let mut options = ReadOptions::default(); + options.set_total_order_seek(true); + options } #[inline] diff --git a/src/database/map/rev_stream.rs b/src/database/map/rev_stream.rs index 1d5d3d10..56b20b9b 100644 --- a/src/database/map/rev_stream.rs +++ b/src/database/map/rev_stream.rs @@ -31,7 +31,7 @@ where pub fn rev_raw_stream(self: &Arc) -> impl Stream>> + Send { use crate::pool::Seek; - let opts = super::read_options_default(); + let opts = super::iter_options_default(); let state = stream::State::new(self, opts); if is_cached(self) { let state = state.init_rev(None); @@ -66,7 +66,7 @@ pub fn rev_raw_stream(self: &Arc) -> impl Stream> fields(%map), )] pub(super) fn is_cached(map: &Arc) -> bool { - let opts = super::cache_read_options_default(); + let opts = super::cache_iter_options_default(); let state = stream::State::new(map, opts).init_rev(None); !state.is_incomplete() diff --git a/src/database/map/rev_stream_from.rs b/src/database/map/rev_stream_from.rs index 1b66e8cc..83832bdd 100644 --- a/src/database/map/rev_stream_from.rs +++ b/src/database/map/rev_stream_from.rs @@ -118,7 +118,7 @@ pub(super) fn is_cached

(map: &Arc, from: &P) -> bool where P: AsRef<[u8]> + ?Sized, { - let cache_opts = super::cache_read_options_default(); + let cache_opts = super::cache_iter_options_default(); let cache_status = stream::State::new(map, cache_opts) .init_rev(from.as_ref().into()) .status(); diff --git a/src/database/map/stream.rs b/src/database/map/stream.rs index fa3b0ad7..f1b5fdc3 100644 --- a/src/database/map/stream.rs +++ b/src/database/map/stream.rs @@ -30,7 +30,7 @@ where pub fn raw_stream(self: &Arc) -> impl Stream>> + Send { use crate::pool::Seek; - let opts = super::read_options_default(); + let opts = super::iter_options_default(); let state = stream::State::new(self, opts); if is_cached(self) { let state = state.init_fwd(None); @@ -65,7 +65,7 @@ pub fn raw_stream(self: &Arc) -> impl Stream>> + fields(%map), )] pub(super) fn is_cached(map: &Arc) -> bool { - let opts = super::cache_read_options_default(); + let opts = super::cache_iter_options_default(); let state = stream::State::new(map, opts).init_fwd(None); !state.is_incomplete() diff --git a/src/database/map/stream_from.rs b/src/database/map/stream_from.rs index 4296b6f6..562ab6b1 100644 --- a/src/database/map/stream_from.rs +++ b/src/database/map/stream_from.rs @@ -77,7 +77,7 @@ where { use crate::pool::Seek; - let opts = super::read_options_default(); + let opts = super::iter_options_default(); let state = stream::State::new(self, opts); if is_cached(self, from) { let state = state.init_fwd(from.as_ref().into()); @@ -115,7 +115,7 @@ pub(super) fn is_cached

(map: &Arc, from: &P) -> bool where P: AsRef<[u8]> + ?Sized, { - let opts = super::cache_read_options_default(); + let opts = super::cache_iter_options_default(); let state = stream::State::new(map, opts).init_fwd(from.as_ref().into()); !state.is_incomplete()