Class ReaderCache<T>
- java.lang.Object
-
- org.apache.jackrabbit.oak.segment.ReaderCache<T>
-
- Direct Known Subclasses:
StringCache,TemplateCache
public abstract class ReaderCache<T> extends Object
A cache consisting of a fast and slow component. The fast cache for small items is based on an array, and a slow one uses a LIRS cache.
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedReaderCache(long maxWeight, int averageWeight, @NotNull String name, @NotNull org.apache.jackrabbit.guava.common.cache.Weigher<org.apache.jackrabbit.oak.segment.ReaderCache.CacheKey,T> weigher)Create a new string cache.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidclear()Clear the cache.Tget(long msb, long lsb, int offset, Function<Integer,T> loader)Get the value, loading it if necessary.@NotNull CacheStatsgetStats()protected abstract booleanisSmall(T value)Determine whether the entry is small, in which case it can be kept in the fast cache.
-
-
-
Constructor Detail
-
ReaderCache
protected ReaderCache(long maxWeight, int averageWeight, @NotNull @NotNull String name, @NotNull @NotNull org.apache.jackrabbit.guava.common.cache.Weigher<org.apache.jackrabbit.oak.segment.ReaderCache.CacheKey,T> weigher)Create a new string cache.- Parameters:
maxWeight- the maximum memory in bytes.averageWeight- an estimate for the average weight of the elements in the cache. SeeCacheLIRS.setAverageMemory(int).weigher- Needed to provide an estimation of the cache weight in memory
-
-
Method Detail
-
getStats
@NotNull public @NotNull CacheStats getStats()
-
get
@NotNull public T get(long msb, long lsb, int offset, Function<Integer,T> loader)
Get the value, loading it if necessary.- Parameters:
msb- the msb of the segmentlsb- the lsb of the segmentoffset- the offsetloader- the loader function- Returns:
- the value
-
clear
public void clear()
Clear the cache.
-
isSmall
protected abstract boolean isSmall(T value)
Determine whether the entry is small, in which case it can be kept in the fast cache.
-
-