Skip to content

Prefetcher

H. Joe Lee edited this page Jun 20, 2022 · 19 revisions

Prefetcher

Prefetcher promotes the BLOBs in Hermes to improve the I/O performance. It predicts the next BLOBs to get and place them in a queue. Prefetcher is not same as Stage-In/Stage-Out. Prefetcher is within Hermes. Stage-In/Stage-Out is data transfer between Hermes and other system.

Algorithms - what to prefetch

  • Size: Determine the size of a BLOB.
  • Frequency: Count the number of times a BLOB has been read since its creation.
  • Recency: Calculate the interval between the present and the last access time of a BLOB.
  • Importance: Use the importance score set by user.

For example, smaller size BLOB will require the fewer number of target buffers and can be prefetched with higher precedence. See also BLOB scoring.

Algorithms - when to prefetch

  • vBucket::Get() API call will trigger Prefetcher if and only if the vBucket has the prefetching Trait.

Questions

  • What will be the configuration settings in hermes.conf for prefetch options?
  • Can Hermes snapshot buffers and prefetch them after crash?
  • What does 11/12 mean?
#define HERMES_PERSIST_TRAIT 11
#define HERMES_ORDER_TRAIT 12
Clone this wiki locally