Zero  0.1.0
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
zero::buffer_pool::PageEvictionerSelector Class Referenceabstract

Buffer frame selector for the Select-and-Filter page evictioner. More...

#include <page_evictioner_selector.hpp>

Inheritance diagram for zero::buffer_pool::PageEvictionerSelector:
zero::buffer_pool::PageEvictionerSelectorLFU zero::buffer_pool::PageEvictionerSelectorLFUDA zero::buffer_pool::PageEvictionerSelectorLOOPLockFree zero::buffer_pool::PageEvictionerSelectorLOOPModulo zero::buffer_pool::PageEvictionerSelectorLOOPMutex zero::buffer_pool::PageEvictionerSelectorLOOPSpinlock zero::buffer_pool::PageEvictionerSelectorLOOPThreadLocal zero::buffer_pool::PageEvictionerSelectorLOOPThreadLocalModulo zero::buffer_pool::PageEvictionerSelectorLRDV1 zero::buffer_pool::PageEvictionerSelectorLRDV2< aging_frequency, aging_function > zero::buffer_pool::PageEvictionerSelectorLRU zero::buffer_pool::PageEvictionerSelectorLRUK< k, on_page_unfix > zero::buffer_pool::PageEvictionerSelectorQuasiFIFOHighContention< retry_list_check_ppm, initial_list_check_ppm > zero::buffer_pool::PageEvictionerSelectorQuasiFIFOLowContention< retry_list_check_ppm, initial_list_check_ppm > zero::buffer_pool::PageEvictionerSelectorQuasiFILOLowContention< retry_list_check_ppm, initial_list_check_ppm > zero::buffer_pool::PageEvictionerSelectorQuasiMRU< retry_list_check_ppm, mru_list_check_ppm > zero::buffer_pool::PageEvictionerSelectorRANDOMCLHEP< random_number_generator, seed_generators > zero::buffer_pool::PageEvictionerSelectorRANDOMCLHEPThreadLocal< random_number_generator, seed_explicitly, seed_generators > zero::buffer_pool::PageEvictionerSelectorRANDOMCRand zero::buffer_pool::PageEvictionerSelectorRANDOMExternal< random_number_generator, random_distribution, seed_generators > zero::buffer_pool::PageEvictionerSelectorRANDOMExternalThreadLocal< random_number_generator, random_distribution, seed_explicitly, seed_generators > zero::buffer_pool::PageEvictionerSelectorRANDOMXORShift128Plus zero::buffer_pool::PageEvictionerSelectorRANDOMXORWow zero::buffer_pool::PageEvictionerSelectorSLRU< protected_block_ppm > zero::buffer_pool::PageEvictionerSelectorTimestampLRU< resort_threshold_ppm > zero::buffer_pool::PageEvictionerSelectorTimestampLRUK< k, resort_threshold_ppm, on_page_unfix >

Public Member Functions

virtual ~PageEvictionerSelector ()
 Destructs a buffer frame selector. More...
 
virtual bf_idx select () noexcept=0
 Selects a page to be evicted from the buffer pool. More...
 
virtual void updateOnPageHit (bf_idx idx) noexcept=0
 Updates the eviction statistics on page hit. More...
 
virtual void updateOnPageUnfix (bf_idx idx) noexcept=0
 Updates the eviction statistics on page unfix. More...
 
virtual void updateOnPageMiss (bf_idx idx, PageID pid) noexcept=0
 Updates the eviction statistics on page miss. More...
 
virtual void updateOnPageFixed (bf_idx idx) noexcept=0
 Updates the eviction statistics of fixed (i.e. used) pages during eviction. More...
 
virtual void updateOnPageDirty (bf_idx idx) noexcept=0
 Updates the eviction statistics of dirty pages during eviction. More...
 
virtual void updateOnPageBlocked (bf_idx idx) noexcept=0
 Updates the eviction statistics of pages that cannot be evicted at all. More...
 
virtual void updateOnPageSwizzled (bf_idx idx) noexcept=0
 Updates the eviction statistics of pages containing swizzled pointers during eviction. More...
 
virtual void updateOnPageExplicitlyUnbuffered (bf_idx idx) noexcept=0
 Updates the eviction statistics on explicit unbuffer. More...
 
virtual void updateOnPointerSwizzling (bf_idx idx) noexcept=0
 Updates the eviction statistics of pages when its pointer got swizzled in its parent page. More...
 
virtual void releaseInternalLatches () noexcept=0
 Releases the internal latches of the buffer frame selector. More...
 

Protected Member Functions

 PageEvictionerSelector (const BufferPool *bufferPool)
 Constructs a buffer frame selector. More...
 

Protected Attributes

bf_idx _maxBufferpoolIndex
 The maximum buffer frame index. More...
 

Detailed Description

Buffer frame selector for the Select-and-Filter page evictioner.

This class defines the interface for buffer frame selectors (which represent different policies) used in the PageEvictionerSelectAndFilter. All those buffer frame selectors have to inherit from this class.

Constructor & Destructor Documentation

§ PageEvictionerSelector()

zero::buffer_pool::PageEvictionerSelector::PageEvictionerSelector ( const BufferPool bufferPool)
inlineexplicitprotected

Constructs a buffer frame selector.

Parameters
bufferPoolThe buffer pool this buffer frame selector is responsible for.

§ ~PageEvictionerSelector()

zero::buffer_pool::PageEvictionerSelector::~PageEvictionerSelector ( )
inlinevirtual

Destructs a buffer frame selector.

Member Function Documentation

§ releaseInternalLatches()

zero::buffer_pool::PageEvictionerSelector::releaseInternalLatches ( )
pure virtualnoexcept

Releases the internal latches of the buffer frame selector.

Some methods of buffer frame selectors hold internal latches beyond the invocation of one method but expect another method to be called later to release those internal latches. This should be used to explicitly release those latches.

Note
This member function must be implemented by every specific buffer frame selection policy.

Implemented in zero::buffer_pool::PageEvictionerSelectorLRDV2< aging_frequency, aging_function >, zero::buffer_pool::PageEvictionerSelectorLRDV1, zero::buffer_pool::PageEvictionerSelectorLFUDA, zero::buffer_pool::PageEvictionerSelectorLFU, zero::buffer_pool::PageEvictionerSelectorTimestampLRUK< k, resort_threshold_ppm, on_page_unfix >, zero::buffer_pool::PageEvictionerSelectorTimestampLRU< resort_threshold_ppm >, zero::buffer_pool::PageEvictionerSelectorQuasiMRU< retry_list_check_ppm, mru_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLRUK< k, on_page_unfix >, zero::buffer_pool::PageEvictionerSelectorSLRU< protected_block_ppm >, zero::buffer_pool::PageEvictionerSelectorRANDOMXORShift128Plus, zero::buffer_pool::PageEvictionerSelectorRANDOMXORWow, zero::buffer_pool::PageEvictionerSelectorLRU, zero::buffer_pool::PageEvictionerSelectorRANDOMCRand, zero::buffer_pool::PageEvictionerSelectorQuasiFILOLowContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorRANDOMCLHEPThreadLocal< random_number_generator, seed_explicitly, seed_generators >, zero::buffer_pool::PageEvictionerSelectorLOOPThreadLocalModulo, zero::buffer_pool::PageEvictionerSelectorLOOPThreadLocal, zero::buffer_pool::PageEvictionerSelectorRANDOMCLHEP< random_number_generator, seed_generators >, zero::buffer_pool::PageEvictionerSelectorQuasiFIFOHighContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLOOPLockFree, zero::buffer_pool::PageEvictionerSelectorRANDOMExternalThreadLocal< random_number_generator, random_distribution, seed_explicitly, seed_generators >, zero::buffer_pool::PageEvictionerSelectorLOOPModulo, zero::buffer_pool::PageEvictionerSelectorQuasiFIFOLowContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorRANDOMExternal< random_number_generator, random_distribution, seed_generators >, zero::buffer_pool::PageEvictionerSelectorLOOPSpinlock, and zero::buffer_pool::PageEvictionerSelectorLOOPMutex.

§ select()

zero::buffer_pool::PageEvictionerSelector::select ( )
pure virtualnoexcept

Selects a page to be evicted from the buffer pool.

Selects a page to be evicted according to the selected buffer frame selector. The PageEvictionerSelectAndFilter will filter the selected buffer frame using a PageEvictionerFilter.

Note
This member function must be implemented by every specific buffer frame selector.
Returns
The selected buffer frame.

Implemented in zero::buffer_pool::PageEvictionerSelectorLRDV2< aging_frequency, aging_function >, zero::buffer_pool::PageEvictionerSelectorLRDV1, zero::buffer_pool::PageEvictionerSelectorLFUDA, zero::buffer_pool::PageEvictionerSelectorLFU, zero::buffer_pool::PageEvictionerSelectorTimestampLRUK< k, resort_threshold_ppm, on_page_unfix >, zero::buffer_pool::PageEvictionerSelectorTimestampLRU< resort_threshold_ppm >, zero::buffer_pool::PageEvictionerSelectorQuasiMRU< retry_list_check_ppm, mru_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLRUK< k, on_page_unfix >, zero::buffer_pool::PageEvictionerSelectorSLRU< protected_block_ppm >, zero::buffer_pool::PageEvictionerSelectorLRU, zero::buffer_pool::PageEvictionerSelectorRANDOMCRand, zero::buffer_pool::PageEvictionerSelectorQuasiFILOLowContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorRANDOMCLHEP< random_number_generator, seed_generators >, zero::buffer_pool::PageEvictionerSelectorLOOPLockFree, zero::buffer_pool::PageEvictionerSelectorQuasiFIFOHighContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLOOPModulo, zero::buffer_pool::PageEvictionerSelectorRANDOMExternal< random_number_generator, random_distribution, seed_generators >, zero::buffer_pool::PageEvictionerSelectorQuasiFIFOLowContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLOOPSpinlock, and zero::buffer_pool::PageEvictionerSelectorLOOPMutex.

§ updateOnPageBlocked()

zero::buffer_pool::PageEvictionerSelector::updateOnPageBlocked ( bf_idx  idx)
pure virtualnoexcept

Updates the eviction statistics of pages that cannot be evicted at all.

Updates the statistics according to the selected buffer frame selection policy when a page cannot be evicted at all.

Note
This member function must be implemented by every specific buffer frame selection policy.
Parameters
idxThe buffer frame index of the BufferPool which corresponding frame contains a page that cannot be evicted at all.

Implemented in zero::buffer_pool::PageEvictionerSelectorLRDV2< aging_frequency, aging_function >, zero::buffer_pool::PageEvictionerSelectorLRDV1, zero::buffer_pool::PageEvictionerSelectorLFUDA, zero::buffer_pool::PageEvictionerSelectorLFU, zero::buffer_pool::PageEvictionerSelectorTimestampLRUK< k, resort_threshold_ppm, on_page_unfix >, zero::buffer_pool::PageEvictionerSelectorTimestampLRU< resort_threshold_ppm >, zero::buffer_pool::PageEvictionerSelectorQuasiMRU< retry_list_check_ppm, mru_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLRUK< k, on_page_unfix >, zero::buffer_pool::PageEvictionerSelectorSLRU< protected_block_ppm >, zero::buffer_pool::PageEvictionerSelectorRANDOMXORShift128Plus, zero::buffer_pool::PageEvictionerSelectorRANDOMXORWow, zero::buffer_pool::PageEvictionerSelectorLRU, zero::buffer_pool::PageEvictionerSelectorRANDOMCRand, zero::buffer_pool::PageEvictionerSelectorQuasiFILOLowContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorRANDOMCLHEPThreadLocal< random_number_generator, seed_explicitly, seed_generators >, zero::buffer_pool::PageEvictionerSelectorLOOPThreadLocalModulo, zero::buffer_pool::PageEvictionerSelectorLOOPThreadLocal, zero::buffer_pool::PageEvictionerSelectorRANDOMCLHEP< random_number_generator, seed_generators >, zero::buffer_pool::PageEvictionerSelectorQuasiFIFOHighContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLOOPLockFree, zero::buffer_pool::PageEvictionerSelectorRANDOMExternalThreadLocal< random_number_generator, random_distribution, seed_explicitly, seed_generators >, zero::buffer_pool::PageEvictionerSelectorLOOPModulo, zero::buffer_pool::PageEvictionerSelectorRANDOMExternal< random_number_generator, random_distribution, seed_generators >, zero::buffer_pool::PageEvictionerSelectorQuasiFIFOLowContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLOOPSpinlock, and zero::buffer_pool::PageEvictionerSelectorLOOPMutex.

§ updateOnPageDirty()

zero::buffer_pool::PageEvictionerSelector::updateOnPageDirty ( bf_idx  idx)
pure virtualnoexcept

Updates the eviction statistics of dirty pages during eviction.

Updates the statistics according to the selected buffer frame selection policy when a page was discovered dirty during eviction.

Note
This member function must be implemented by every specific buffer frame selection policy.
Parameters
idxThe buffer frame index of the BufferPool that was picked for eviction while the corresponding frame contained a dirty page.

Implemented in zero::buffer_pool::PageEvictionerSelectorLRDV2< aging_frequency, aging_function >, zero::buffer_pool::PageEvictionerSelectorLRDV1, zero::buffer_pool::PageEvictionerSelectorLFUDA, zero::buffer_pool::PageEvictionerSelectorLFU, zero::buffer_pool::PageEvictionerSelectorTimestampLRUK< k, resort_threshold_ppm, on_page_unfix >, zero::buffer_pool::PageEvictionerSelectorTimestampLRU< resort_threshold_ppm >, zero::buffer_pool::PageEvictionerSelectorQuasiMRU< retry_list_check_ppm, mru_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLRUK< k, on_page_unfix >, zero::buffer_pool::PageEvictionerSelectorSLRU< protected_block_ppm >, zero::buffer_pool::PageEvictionerSelectorRANDOMXORShift128Plus, zero::buffer_pool::PageEvictionerSelectorRANDOMXORWow, zero::buffer_pool::PageEvictionerSelectorLRU, zero::buffer_pool::PageEvictionerSelectorRANDOMCRand, zero::buffer_pool::PageEvictionerSelectorQuasiFILOLowContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorRANDOMCLHEPThreadLocal< random_number_generator, seed_explicitly, seed_generators >, zero::buffer_pool::PageEvictionerSelectorLOOPThreadLocalModulo, zero::buffer_pool::PageEvictionerSelectorLOOPThreadLocal, zero::buffer_pool::PageEvictionerSelectorRANDOMCLHEP< random_number_generator, seed_generators >, zero::buffer_pool::PageEvictionerSelectorQuasiFIFOHighContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLOOPLockFree, zero::buffer_pool::PageEvictionerSelectorRANDOMExternalThreadLocal< random_number_generator, random_distribution, seed_explicitly, seed_generators >, zero::buffer_pool::PageEvictionerSelectorLOOPModulo, zero::buffer_pool::PageEvictionerSelectorRANDOMExternal< random_number_generator, random_distribution, seed_generators >, zero::buffer_pool::PageEvictionerSelectorQuasiFIFOLowContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLOOPSpinlock, and zero::buffer_pool::PageEvictionerSelectorLOOPMutex.

§ updateOnPageExplicitlyUnbuffered()

zero::buffer_pool::PageEvictionerSelector::updateOnPageExplicitlyUnbuffered ( bf_idx  idx)
pure virtualnoexcept

Updates the eviction statistics on explicit unbuffer.

Updates the statistics according to the selected buffer frame selection policy when a page got explicitly unbuffered.

Note
This member function must be implemented by every specific buffer frame selection policy.
Parameters
idxThe buffer frame index of the BufferPool whose corresponding frame is freed explicitly.

Implemented in zero::buffer_pool::PageEvictionerSelectorLRDV2< aging_frequency, aging_function >, zero::buffer_pool::PageEvictionerSelectorLRDV1, zero::buffer_pool::PageEvictionerSelectorLFUDA, zero::buffer_pool::PageEvictionerSelectorLFU, zero::buffer_pool::PageEvictionerSelectorTimestampLRUK< k, resort_threshold_ppm, on_page_unfix >, zero::buffer_pool::PageEvictionerSelectorTimestampLRU< resort_threshold_ppm >, zero::buffer_pool::PageEvictionerSelectorQuasiMRU< retry_list_check_ppm, mru_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLRUK< k, on_page_unfix >, zero::buffer_pool::PageEvictionerSelectorSLRU< protected_block_ppm >, zero::buffer_pool::PageEvictionerSelectorRANDOMXORShift128Plus, zero::buffer_pool::PageEvictionerSelectorRANDOMXORWow, zero::buffer_pool::PageEvictionerSelectorLRU, zero::buffer_pool::PageEvictionerSelectorRANDOMCRand, zero::buffer_pool::PageEvictionerSelectorQuasiFILOLowContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorRANDOMCLHEPThreadLocal< random_number_generator, seed_explicitly, seed_generators >, zero::buffer_pool::PageEvictionerSelectorLOOPThreadLocalModulo, zero::buffer_pool::PageEvictionerSelectorLOOPThreadLocal, zero::buffer_pool::PageEvictionerSelectorRANDOMCLHEP< random_number_generator, seed_generators >, zero::buffer_pool::PageEvictionerSelectorQuasiFIFOHighContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLOOPLockFree, zero::buffer_pool::PageEvictionerSelectorRANDOMExternalThreadLocal< random_number_generator, random_distribution, seed_explicitly, seed_generators >, zero::buffer_pool::PageEvictionerSelectorLOOPModulo, zero::buffer_pool::PageEvictionerSelectorRANDOMExternal< random_number_generator, random_distribution, seed_generators >, zero::buffer_pool::PageEvictionerSelectorQuasiFIFOLowContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLOOPSpinlock, and zero::buffer_pool::PageEvictionerSelectorLOOPMutex.

§ updateOnPageFixed()

zero::buffer_pool::PageEvictionerSelector::updateOnPageFixed ( bf_idx  idx)
pure virtualnoexcept

Updates the eviction statistics of fixed (i.e. used) pages during eviction.

Updates the statistics according to the selected buffer frame selection policy when a page was discovered fixed during eviction.

Note
This member function must be implemented by every specific buffer frame selection policy.
Parameters
idxThe buffer frame index of the BufferPool that was picked for eviction while the corresponding frame was fixed.

Implemented in zero::buffer_pool::PageEvictionerSelectorLRDV2< aging_frequency, aging_function >, zero::buffer_pool::PageEvictionerSelectorLRDV1, zero::buffer_pool::PageEvictionerSelectorLFUDA, zero::buffer_pool::PageEvictionerSelectorLFU, zero::buffer_pool::PageEvictionerSelectorTimestampLRUK< k, resort_threshold_ppm, on_page_unfix >, zero::buffer_pool::PageEvictionerSelectorTimestampLRU< resort_threshold_ppm >, zero::buffer_pool::PageEvictionerSelectorQuasiMRU< retry_list_check_ppm, mru_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLRUK< k, on_page_unfix >, zero::buffer_pool::PageEvictionerSelectorSLRU< protected_block_ppm >, zero::buffer_pool::PageEvictionerSelectorRANDOMXORShift128Plus, zero::buffer_pool::PageEvictionerSelectorRANDOMXORWow, zero::buffer_pool::PageEvictionerSelectorLRU, zero::buffer_pool::PageEvictionerSelectorRANDOMCRand, zero::buffer_pool::PageEvictionerSelectorQuasiFILOLowContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorRANDOMCLHEPThreadLocal< random_number_generator, seed_explicitly, seed_generators >, zero::buffer_pool::PageEvictionerSelectorLOOPThreadLocalModulo, zero::buffer_pool::PageEvictionerSelectorLOOPThreadLocal, zero::buffer_pool::PageEvictionerSelectorRANDOMCLHEP< random_number_generator, seed_generators >, zero::buffer_pool::PageEvictionerSelectorQuasiFIFOHighContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLOOPLockFree, zero::buffer_pool::PageEvictionerSelectorRANDOMExternalThreadLocal< random_number_generator, random_distribution, seed_explicitly, seed_generators >, zero::buffer_pool::PageEvictionerSelectorLOOPModulo, zero::buffer_pool::PageEvictionerSelectorRANDOMExternal< random_number_generator, random_distribution, seed_generators >, zero::buffer_pool::PageEvictionerSelectorQuasiFIFOLowContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLOOPSpinlock, and zero::buffer_pool::PageEvictionerSelectorLOOPMutex.

§ updateOnPageHit()

zero::buffer_pool::PageEvictionerSelector::updateOnPageHit ( bf_idx  idx)
pure virtualnoexcept

Updates the eviction statistics on page hit.

Updates the statistics according to the selected buffer frame selection policy when a page hit occurred.

Warning
If a buffer frame selection policy is sensitive to recognizing the same page reference multiple times, implement this different from updateOnPageUnfix().
Note
This member function must be implemented by every specific buffer frame selection policy.
Parameters
idxThe buffer frame index of the BufferPool on which a page hit occurred.

Implemented in zero::buffer_pool::PageEvictionerSelectorLRDV2< aging_frequency, aging_function >, zero::buffer_pool::PageEvictionerSelectorLRDV1, zero::buffer_pool::PageEvictionerSelectorLFUDA, zero::buffer_pool::PageEvictionerSelectorLFU, zero::buffer_pool::PageEvictionerSelectorTimestampLRUK< k, resort_threshold_ppm, on_page_unfix >, zero::buffer_pool::PageEvictionerSelectorTimestampLRU< resort_threshold_ppm >, zero::buffer_pool::PageEvictionerSelectorQuasiMRU< retry_list_check_ppm, mru_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLRUK< k, on_page_unfix >, zero::buffer_pool::PageEvictionerSelectorRANDOMXORShift128Plus, zero::buffer_pool::PageEvictionerSelectorSLRU< protected_block_ppm >, zero::buffer_pool::PageEvictionerSelectorRANDOMXORWow, zero::buffer_pool::PageEvictionerSelectorLRU, zero::buffer_pool::PageEvictionerSelectorRANDOMCRand, zero::buffer_pool::PageEvictionerSelectorQuasiFILOLowContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorRANDOMCLHEPThreadLocal< random_number_generator, seed_explicitly, seed_generators >, zero::buffer_pool::PageEvictionerSelectorLOOPThreadLocalModulo, zero::buffer_pool::PageEvictionerSelectorLOOPThreadLocal, zero::buffer_pool::PageEvictionerSelectorRANDOMCLHEP< random_number_generator, seed_generators >, zero::buffer_pool::PageEvictionerSelectorQuasiFIFOHighContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLOOPLockFree, zero::buffer_pool::PageEvictionerSelectorRANDOMExternalThreadLocal< random_number_generator, random_distribution, seed_explicitly, seed_generators >, zero::buffer_pool::PageEvictionerSelectorLOOPModulo, zero::buffer_pool::PageEvictionerSelectorRANDOMExternal< random_number_generator, random_distribution, seed_generators >, zero::buffer_pool::PageEvictionerSelectorQuasiFIFOLowContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLOOPSpinlock, and zero::buffer_pool::PageEvictionerSelectorLOOPMutex.

§ updateOnPageMiss()

zero::buffer_pool::PageEvictionerSelector::updateOnPageMiss ( bf_idx  idx,
PageID  pid 
)
pure virtualnoexcept

Updates the eviction statistics on page miss.

Updates the statistics according to the selected buffer frame selection policy when a page miss occurred.

Note
This member function must be implemented by every specific buffer frame selection policy.
Parameters
idxThe buffer frame index of the BufferPool on which a page miss occurred.
pidThe PageID of the generic_page that was loaded into the buffer frame with index idx .

Implemented in zero::buffer_pool::PageEvictionerSelectorLRDV2< aging_frequency, aging_function >, zero::buffer_pool::PageEvictionerSelectorLRDV1, zero::buffer_pool::PageEvictionerSelectorLFUDA, zero::buffer_pool::PageEvictionerSelectorLFU, zero::buffer_pool::PageEvictionerSelectorTimestampLRUK< k, resort_threshold_ppm, on_page_unfix >, zero::buffer_pool::PageEvictionerSelectorTimestampLRU< resort_threshold_ppm >, zero::buffer_pool::PageEvictionerSelectorQuasiMRU< retry_list_check_ppm, mru_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLRUK< k, on_page_unfix >, zero::buffer_pool::PageEvictionerSelectorRANDOMXORShift128Plus, zero::buffer_pool::PageEvictionerSelectorSLRU< protected_block_ppm >, zero::buffer_pool::PageEvictionerSelectorRANDOMXORWow, zero::buffer_pool::PageEvictionerSelectorLRU, zero::buffer_pool::PageEvictionerSelectorRANDOMCRand, zero::buffer_pool::PageEvictionerSelectorQuasiFILOLowContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorRANDOMCLHEPThreadLocal< random_number_generator, seed_explicitly, seed_generators >, zero::buffer_pool::PageEvictionerSelectorLOOPThreadLocalModulo, zero::buffer_pool::PageEvictionerSelectorLOOPThreadLocal, zero::buffer_pool::PageEvictionerSelectorRANDOMCLHEP< random_number_generator, seed_generators >, zero::buffer_pool::PageEvictionerSelectorQuasiFIFOHighContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLOOPLockFree, zero::buffer_pool::PageEvictionerSelectorRANDOMExternalThreadLocal< random_number_generator, random_distribution, seed_explicitly, seed_generators >, zero::buffer_pool::PageEvictionerSelectorLOOPModulo, zero::buffer_pool::PageEvictionerSelectorRANDOMExternal< random_number_generator, random_distribution, seed_generators >, zero::buffer_pool::PageEvictionerSelectorQuasiFIFOLowContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLOOPSpinlock, and zero::buffer_pool::PageEvictionerSelectorLOOPMutex.

§ updateOnPageSwizzled()

zero::buffer_pool::PageEvictionerSelector::updateOnPageSwizzled ( bf_idx  idx)
pure virtualnoexcept

Updates the eviction statistics of pages containing swizzled pointers during eviction.

Updates the statistics according to the selected buffer frame selection policy when a page was discovered containing swizzled pointers during eviction.

Note
This member function must be implemented by every specific buffer frame selection policy.
Parameters
idxThe buffer frame index of the BufferPool that was picked for eviction while the corresponding frame contained a page with swizzled pointers.

Implemented in zero::buffer_pool::PageEvictionerSelectorLRDV2< aging_frequency, aging_function >, zero::buffer_pool::PageEvictionerSelectorLRDV1, zero::buffer_pool::PageEvictionerSelectorLFUDA, zero::buffer_pool::PageEvictionerSelectorLFU, zero::buffer_pool::PageEvictionerSelectorTimestampLRUK< k, resort_threshold_ppm, on_page_unfix >, zero::buffer_pool::PageEvictionerSelectorTimestampLRU< resort_threshold_ppm >, zero::buffer_pool::PageEvictionerSelectorQuasiMRU< retry_list_check_ppm, mru_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLRUK< k, on_page_unfix >, zero::buffer_pool::PageEvictionerSelectorSLRU< protected_block_ppm >, zero::buffer_pool::PageEvictionerSelectorRANDOMXORShift128Plus, zero::buffer_pool::PageEvictionerSelectorRANDOMXORWow, zero::buffer_pool::PageEvictionerSelectorLRU, zero::buffer_pool::PageEvictionerSelectorRANDOMCRand, zero::buffer_pool::PageEvictionerSelectorQuasiFILOLowContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorRANDOMCLHEPThreadLocal< random_number_generator, seed_explicitly, seed_generators >, zero::buffer_pool::PageEvictionerSelectorLOOPThreadLocalModulo, zero::buffer_pool::PageEvictionerSelectorLOOPThreadLocal, zero::buffer_pool::PageEvictionerSelectorRANDOMCLHEP< random_number_generator, seed_generators >, zero::buffer_pool::PageEvictionerSelectorQuasiFIFOHighContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLOOPLockFree, zero::buffer_pool::PageEvictionerSelectorRANDOMExternalThreadLocal< random_number_generator, random_distribution, seed_explicitly, seed_generators >, zero::buffer_pool::PageEvictionerSelectorLOOPModulo, zero::buffer_pool::PageEvictionerSelectorRANDOMExternal< random_number_generator, random_distribution, seed_generators >, zero::buffer_pool::PageEvictionerSelectorQuasiFIFOLowContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLOOPSpinlock, and zero::buffer_pool::PageEvictionerSelectorLOOPMutex.

§ updateOnPageUnfix()

zero::buffer_pool::PageEvictionerSelector::updateOnPageUnfix ( bf_idx  idx)
pure virtualnoexcept

Updates the eviction statistics on page unfix.

Updates the statistics according to the selected buffer frame selection policy when a page unfix occurred.

Warning
If a buffer frame selection policy is sensitive to recognizing the same page reference multiple times, implement this different from updateOnPageHit().
Note
This member function must be implemented by every specific buffer frame selection policy.
Parameters
idxThe buffer frame index of the BufferPool on which a page unfix occurred.

Implemented in zero::buffer_pool::PageEvictionerSelectorLRDV2< aging_frequency, aging_function >, zero::buffer_pool::PageEvictionerSelectorLRDV1, zero::buffer_pool::PageEvictionerSelectorLFUDA, zero::buffer_pool::PageEvictionerSelectorLFU, zero::buffer_pool::PageEvictionerSelectorTimestampLRUK< k, resort_threshold_ppm, on_page_unfix >, zero::buffer_pool::PageEvictionerSelectorTimestampLRU< resort_threshold_ppm >, zero::buffer_pool::PageEvictionerSelectorQuasiMRU< retry_list_check_ppm, mru_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLRUK< k, on_page_unfix >, zero::buffer_pool::PageEvictionerSelectorRANDOMXORShift128Plus, zero::buffer_pool::PageEvictionerSelectorSLRU< protected_block_ppm >, zero::buffer_pool::PageEvictionerSelectorRANDOMXORWow, zero::buffer_pool::PageEvictionerSelectorLRU, zero::buffer_pool::PageEvictionerSelectorRANDOMCRand, zero::buffer_pool::PageEvictionerSelectorQuasiFILOLowContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorRANDOMCLHEPThreadLocal< random_number_generator, seed_explicitly, seed_generators >, zero::buffer_pool::PageEvictionerSelectorLOOPThreadLocalModulo, zero::buffer_pool::PageEvictionerSelectorLOOPThreadLocal, zero::buffer_pool::PageEvictionerSelectorRANDOMCLHEP< random_number_generator, seed_generators >, zero::buffer_pool::PageEvictionerSelectorQuasiFIFOHighContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLOOPLockFree, zero::buffer_pool::PageEvictionerSelectorRANDOMExternalThreadLocal< random_number_generator, random_distribution, seed_explicitly, seed_generators >, zero::buffer_pool::PageEvictionerSelectorLOOPModulo, zero::buffer_pool::PageEvictionerSelectorRANDOMExternal< random_number_generator, random_distribution, seed_generators >, zero::buffer_pool::PageEvictionerSelectorQuasiFIFOLowContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLOOPSpinlock, and zero::buffer_pool::PageEvictionerSelectorLOOPMutex.

§ updateOnPointerSwizzling()

zero::buffer_pool::PageEvictionerSelector::updateOnPointerSwizzling ( bf_idx  idx)
pure virtualnoexcept

Updates the eviction statistics of pages when its pointer got swizzled in its parent page.

Updates the statistics according to the selected buffer frame selection policy when the pointer of a page got swizzled in its parent page.

Note
This member function must be implemented by every specific buffer frame selection policy.
Parameters
idxThe buffer frame index of the BufferPool whose pointer got swizzled in its corresponding parent page.

Implemented in zero::buffer_pool::PageEvictionerSelectorLRDV2< aging_frequency, aging_function >, zero::buffer_pool::PageEvictionerSelectorLRDV1, zero::buffer_pool::PageEvictionerSelectorLFUDA, zero::buffer_pool::PageEvictionerSelectorLFU, zero::buffer_pool::PageEvictionerSelectorTimestampLRUK< k, resort_threshold_ppm, on_page_unfix >, zero::buffer_pool::PageEvictionerSelectorTimestampLRU< resort_threshold_ppm >, zero::buffer_pool::PageEvictionerSelectorQuasiMRU< retry_list_check_ppm, mru_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLRUK< k, on_page_unfix >, zero::buffer_pool::PageEvictionerSelectorSLRU< protected_block_ppm >, zero::buffer_pool::PageEvictionerSelectorRANDOMXORShift128Plus, zero::buffer_pool::PageEvictionerSelectorRANDOMXORWow, zero::buffer_pool::PageEvictionerSelectorLRU, zero::buffer_pool::PageEvictionerSelectorRANDOMCRand, zero::buffer_pool::PageEvictionerSelectorQuasiFILOLowContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorRANDOMCLHEPThreadLocal< random_number_generator, seed_explicitly, seed_generators >, zero::buffer_pool::PageEvictionerSelectorLOOPThreadLocalModulo, zero::buffer_pool::PageEvictionerSelectorLOOPThreadLocal, zero::buffer_pool::PageEvictionerSelectorRANDOMCLHEP< random_number_generator, seed_generators >, zero::buffer_pool::PageEvictionerSelectorQuasiFIFOHighContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLOOPLockFree, zero::buffer_pool::PageEvictionerSelectorRANDOMExternalThreadLocal< random_number_generator, random_distribution, seed_explicitly, seed_generators >, zero::buffer_pool::PageEvictionerSelectorLOOPModulo, zero::buffer_pool::PageEvictionerSelectorRANDOMExternal< random_number_generator, random_distribution, seed_generators >, zero::buffer_pool::PageEvictionerSelectorQuasiFIFOLowContention< retry_list_check_ppm, initial_list_check_ppm >, zero::buffer_pool::PageEvictionerSelectorLOOPSpinlock, and zero::buffer_pool::PageEvictionerSelectorLOOPMutex.

Member Data Documentation

§ _maxBufferpoolIndex

zero::buffer_pool::PageEvictionerSelector::_maxBufferpoolIndex
protected

The maximum buffer frame index.


The documentation for this class was generated from the following file: