pub struct LeapOracle { /* private fields */ }Expand description
LeapOracle is an implementation of the algorithm described by the paper
“Effectively Prefetching Remote Memory with Leap”. It provides an Oracle
that attempts to predict future page requests based on trends found in
recent history.
Hasan Al Maruf and Mosharaf Chowdhury. (2020). Effectively Prefetching Remote Memory with Leap. In Proceedings of the 2020 USENIX Conference on Usenix Annual Technical Conference (USENIX ATC’20), Article 58, 843–857. USENIX Association, USA.
Trait Implementations§
Source§impl Clone for LeapOracle
impl Clone for LeapOracle
Source§fn clone(&self) -> LeapOracle
fn clone(&self) -> LeapOracle
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for LeapOracle
impl Debug for LeapOracle
Source§impl Default for LeapOracle
impl Default for LeapOracle
Source§fn default() -> LeapOracle
fn default() -> LeapOracle
Returns the “default value” for a type. Read more
Source§impl Oracle for LeapOracle
impl Oracle for LeapOracle
Source§fn observe_cache_hit(&mut self, pageidx: PageIdx)
fn observe_cache_hit(&mut self, pageidx: PageIdx)
observe_cache_hit is called whenever Graft satisfies a page read from
it’s local cache. This function is not called on a cache miss.Source§fn predict_next(&mut self, pageidx: PageIdx) -> impl Iterator<Item = PageIdx>
fn predict_next(&mut self, pageidx: PageIdx) -> impl Iterator<Item = PageIdx>
predict_next is called when Graft has a cache miss, and can be used to
hint that Graft should fetch additional pages along with the requested
page. The returned iterator should be empty if no additional pages
should be fetched, and it does not need to include the requested page.Auto Trait Implementations§
impl Freeze for LeapOracle
impl RefUnwindSafe for LeapOracle
impl Send for LeapOracle
impl Sync for LeapOracle
impl Unpin for LeapOracle
impl UnwindSafe for LeapOracle
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more