Package herddb.core
Class ClockProPolicy
- java.lang.Object
-
- herddb.core.ClockProPolicy
-
- All Implemented Interfaces:
PageReplacementPolicy
public class ClockProPolicy extends Object implements PageReplacementPolicy
Basic implementation of ClockPro algorithm.Based on the original work:
CLOCK-Pro: An Effective Improvement of the CLOCK Replacement Song Jiang Feng Chen and Xiaodong Zhang Performance and Architecture Laboratory (PAL) Computer Science Department Los Alamos National Laboratory, CCS Division College of William and Mary Los Alamos, NM 87545, USA Williamsburg, VA 23187, USA sjiang@lanl.gov fchen@cs.wm.edu, zhang@cs.wm.edu
See http://web.cse.ohio-state.edu/hpcs/WWW/HTML/publications/papers/TR-05-3.pdf
- Author:
- diego.salvi
-
-
Constructor Summary
Constructors Constructor Description ClockProPolicy(int capacity)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description herddb.core.ClockProPolicy.CPMetadataadd(Page<?> page)Add a newPageto memory.intcapacity()Returns the maximum number ofPagesmemorizable.voidclear()Clear any memorized data.voidpageHit(Page<?> page)Track a page cache hit.booleanremove(Page<?> page)Remove aPagefrom memory.<P extends Page<?>>
voidremove(Collection<P> pages)Remove manyPage Pagesfrom memory.intsize()Returns the current number ofPagesmemorized.
-
-
-
Method Detail
-
add
public herddb.core.ClockProPolicy.CPMetadata add(Page<?> page)
Description copied from interface:PageReplacementPolicyAdd a newPageto memory.Adding a new page could force an older page to be unloaded
- Specified by:
addin interfacePageReplacementPolicy- Parameters:
page- page to be added- Returns:
- selected page to be unloaded or
null
-
remove
public boolean remove(Page<?> page)
Description copied from interface:PageReplacementPolicyRemove aPagefrom memory.- Specified by:
removein interfacePageReplacementPolicy- Parameters:
page- page to be removed.- Returns:
trueif the memory really contained the given page
-
remove
public <P extends Page<?>> void remove(Collection<P> pages)
Description copied from interface:PageReplacementPolicyRemove manyPage Pagesfrom memory.This method is logically equivalent to multiple
PageReplacementPolicy.remove(Page)invocations but is expected to be more efficient.- Specified by:
removein interfacePageReplacementPolicy- Parameters:
pages- pages to be removed.
-
size
public int size()
Description copied from interface:PageReplacementPolicyReturns the current number ofPagesmemorized.- Specified by:
sizein interfacePageReplacementPolicy- Returns:
- current number of Pages
-
capacity
public int capacity()
Description copied from interface:PageReplacementPolicyReturns the maximum number ofPagesmemorizable.- Specified by:
capacityin interfacePageReplacementPolicy- Returns:
- maximum number of Pages
-
clear
public void clear()
Description copied from interface:PageReplacementPolicyClear any memorized data.- Specified by:
clearin interfacePageReplacementPolicy
-
pageHit
public void pageHit(Page<?> page)
Description copied from interface:PageReplacementPolicyTrack a page cache hit.- Specified by:
pageHitin interfacePageReplacementPolicy- Parameters:
page- for which track an hit
-
-