/** * Compares the desirableness for eviction of two elements * * Compares hit counts. If both zero, * * @param element1 the element to compare against * @param element2 the element to compare * @return true if the second element is preferable to the first element for ths policy */ public boolean compare(Element element1, Element element2) { return element2.getHitCount() < element1.getHitCount(); }
/** * {@inheritDoc} */ @Override long getHitCount() { return getElement().getHitCount(); }
/** * Updates the stats from memory * @param e */ void updateStats(Element e) { hitCount = e.getHitCount(); expiry = e.getExpirationTime(); } }
/** * Create a new write operation for a particular element and creation time * * @param element the element to write * @param creationTime the creation time of the operation */ public WriteOperation(Element element, long creationTime) { this.element = new Element(element.getObjectKey(), element.getObjectValue(), element.getVersion(), element.getCreationTime(), element.getLastAccessTime(), element.getHitCount(), false, element.getTimeToLive(), element.getTimeToIdle(), element.getLastUpdateTime()); this.creationTime = creationTime; }
/** * Create a new marker tied to the given factory instance. * * @param factory factory responsible for this marker * @param position position on disk where the element will be stored * @param size size of the serialized element * @param element element being stored */ DiskMarker(DiskStorageFactory factory, long position, int size, Element element) { super(factory); this.position = position; this.size = size; this.key = element.getObjectKey(); this.hitCount = element.getHitCount(); this.expiry = TimeUtil.toMillis(TimeUtil.toSecs(element.getExpirationTime())); }
private CacheEntry duplicateCacheEntryElement(CacheEntry entry) { if (null == entry.getElement()) { return entry; } else { Element element = entry.getElement(); return new CacheEntry(entry.getKey(), new Element(element.getObjectKey(), element.getObjectValue(), element.getVersion(), element.getCreationTime(), element.getLastAccessTime(), element.getHitCount(), false, element.getTimeToLive(), element.getTimeToIdle(), element.getLastUpdateTime())); } }
public ElementData(final Element element) { this.value = element.getValue(); this.version = element.getVersion(); this.creationTime = element.getCreationTime(); this.lastAccessTime = element.getLastAccessTime(); this.hitCount = element.getHitCount(); this.cacheDefaultLifespan = element.usesCacheDefaultLifespan(); this.lastUpdateTime = element.getLastUpdateTime(); }
/** * Make a duplicate of an element but using the specified value * * @param element the element to duplicate * @param newValue the new element's value * @return the duplicated element */ public Element duplicateElementWithNewValue(final Element element, final Object newValue) { Element newElement; if (element.usesCacheDefaultLifespan()) { newElement = new Element(element.getObjectKey(), newValue, element.getVersion(), element.getCreationTime(), element.getLastAccessTime(), element.getHitCount(), element.usesCacheDefaultLifespan(), Integer.MIN_VALUE, Integer.MIN_VALUE, element.getLastUpdateTime()); } else { newElement = new Element(element.getObjectKey(), newValue, element.getVersion(), element.getCreationTime(), element.getLastAccessTime(), element.getHitCount(), element.usesCacheDefaultLifespan(), element.getTimeToLive(), element.getTimeToIdle(), element.getLastUpdateTime()); } if (ElementIdHelper.hasId(element)) { ElementIdHelper.setId(newElement, ElementIdHelper.getId(element)); } return newElement; }
/** * Gets how many times element has been accessed. Useful for testing and optimization * @param element * @return */ public long getCacheElementHitCount(Element element) { if(element == null) { return 0; } return element.getHitCount(); }
/** * Updates the stats from memory * @param e */ void updateStats(Element e) { hitCount = e.getHitCount(); expiry = e.getExpirationTime(); } }
/** * {@inheritDoc} */ @Override long getHitCount() { return getElement().getHitCount(); }
/** * {@inheritDoc} */ @Override long getHitCount() { return getElement().getHitCount(); }
/** * Create a new write operation for a particular element and creation time * * @param element the element to write * @param creationTime the creation time of the operation */ public WriteOperation(Element element, long creationTime) { this.element = new Element(element.getObjectKey(), element.getObjectValue(), element.getVersion(), element.getCreationTime(), element.getLastAccessTime(), element.getHitCount(), false, element.getTimeToLive(), element.getTimeToIdle(), element.getLastUpdateTime()); this.creationTime = creationTime; }
/** * Create a new write operation for a particular element and creation time * * @param element the element to write * @param creationTime the creation time of the operation */ public WriteOperation(Element element, long creationTime) { this.element = new Element(element.getObjectKey(), element.getObjectValue(), element.getVersion(), element.getCreationTime(), element.getLastAccessTime(), element.getHitCount(), false, element.getTimeToLive(), element.getTimeToIdle(), element.getLastUpdateTime()); this.creationTime = creationTime; }
/** * Create a new write operation for a particular element and creation time * * @param element the element to write * @param creationTime the creation time of the operation */ public WriteOperation(Element element, long creationTime) { this.element = new Element(element.getObjectKey(), element.getObjectValue(), element.getVersion(), element.getCreationTime(), element.getLastAccessTime(), element.getHitCount(), false, element.getTimeToLive(), element.getTimeToIdle(), element.getLastUpdateTime()); this.creationTime = creationTime; }
public IdentityModeElementData(final Element element, long creationTime) { super(element.getObjectValue(), element.getCreationTime(), creationTime == Integer.MIN_VALUE ? element.getCreationTime() : creationTime, element.getLastAccessTime(), element.getHitCount(), element.getTimeToLive(), element.getTimeToIdle(), element.getLastUpdateTime()); }
public SerializationModeElementData(final Element element) { this(element.getObjectValue(), element.getCreationTime(), element.getCreationTime(), element.getLastAccessTime(), element.getHitCount(), element.usesCacheDefaultLifespan(), element.getTimeToLive(), element.getTimeToIdle(), element.getLastUpdateTime()); }
private CacheEntry duplicateCacheEntryElement(CacheEntry entry) { if (null == entry.getElement()) { return entry; } else { Element element = entry.getElement(); return new CacheEntry(entry.getKey(), new Element(element.getObjectKey(), element.getObjectValue(), element.getVersion(), element.getCreationTime(), element.getLastAccessTime(), element.getHitCount(), false, element.getTimeToLive(), element.getTimeToIdle(), element.getLastUpdateTime())); } }
private CacheEntry duplicateCacheEntryElement(CacheEntry entry) { if (null == entry.getElement()) { return entry; } else { Element element = entry.getElement(); return new CacheEntry(entry.getKey(), new Element(element.getObjectKey(), element.getObjectValue(), element.getVersion(), element.getCreationTime(), element.getLastAccessTime(), element.getHitCount(), false, element.getTimeToLive(), element.getTimeToIdle(), element.getLastUpdateTime())); } }
/** * Make a duplicate of an element but using the specified value * * @param element the element to duplicate * @param newValue the new element's value * @return the duplicated element */ public Element duplicateElementWithNewValue(final Element element, final Object newValue) { return new Element(element.getObjectKey(), newValue, element.getVersion(), element.getCreationTime(), element.getLastAccessTime(), element.getHitCount(), element.usesCacheDefaultLifespan(), element.getTimeToLive(), element.getTimeToIdle(), element.getLastUpdateTime()); }