|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
public static interface LRUNexus.Options
These options are MUST BE specified as ENVIRONMENT variables on
the command line when you start the JVM. The options control the
existence of and behavior of the LRUNexus.INSTANCE.
| Field Summary | |
|---|---|
static String |
ACCESS_POLICY
The access policy (LIRS, LRU, etc). |
static String |
CLASS
The name of IGlobalLRU implementation class. |
static String |
CONCURRENCY_LEVEL
The concurrency level for the backing hash map(s). |
static String |
DEFAULT_ACCESS_POLICY
|
static String |
DEFAULT_CLASS
The default IGlobalLRU implementation class (
). |
static String |
DEFAULT_CONCURRENCY_LEVEL
|
static String |
DEFAULT_ENABLED
Note: The LRUNexus is now disabled by default. |
static String |
DEFAULT_INDEX_SEGMENT_BUILD_POPULATES_CACHE
FIXME Verify that [true] is the right behavior for scale-out. |
static String |
DEFAULT_INITIAL_CAPACITY
|
static String |
DEFAULT_LIMITING_CAPACITY
|
static String |
DEFAULT_LOAD_FACTOR
|
static String |
DEFAULT_MAX_HEAP
|
static String |
DEFAULT_MIN_CACHE_SET_SIZE
|
static String |
DEFAULT_PERCENT_CLEARED
|
static String |
DEFAULT_PERCENT_HEAP
The default (".1") is a bit conservative. |
static String |
DEFAULT_THREAD_LOCAL_BUFFER_CAPACITY
|
static String |
DEFAULT_THREAD_LOCAL_BUFFERS
|
static String |
ENABLED
Option may be used to (en|dis)able the LRUNexus.INSTANCE
(default "false"). |
static String |
INDEX_SEGMENT_BUILD_POPULATES_CACHE
When true, the IndexSegmentBuilder will
pre-populate the IGlobalLRU cache with the nodes and leaves
of the new index segment during the build or merge operation (default
"true"). |
static String |
INITIAL_CAPACITY
The initial capacity for the cache instances. |
static String |
LIMITING_CAPACITY
Deprecated. At the moment, this option is only understood by the BCHMGlobalLRU. The option may or may not survive
as that feature is alpha. |
static String |
LOAD_FACTOR
The load factor for the cache instances. |
static String |
MAX_HEAP
This option overrides PERCENT_HEAP and directly specifies
the maximum capacity of the LRUNexus.INSTANCE in bytes. |
static String |
MIN_CACHE_SET_SIZE
The minimum #of per- IRawStore cache instances that will be
retained by hard references when using an IGlobalLRU based on
a weak value hash map such as WeakReferenceGlobalLRU. |
static String |
PERCENT_CLEARED
The percent of the maximum bytes which the LRU may buffer to be cleared from the LRU when evicting the LRU entry (default ".01"). |
static String |
PERCENT_HEAP
The maximum heap capacity as a percentage of the JVM heap expressed as a value in [0.0:1.0]. |
static String |
THREAD_LOCAL_BUFFER_CAPACITY
The capacity of the thread-local buffer used to amortize the cost of updating the access policy. |
static String |
THREAD_LOCAL_BUFFERS
When true the cache will use true per-thread
buffers to absorb access policy updates. |
| Field Detail |
|---|
static final String ENABLED
LRUNexus.INSTANCE
(default "false").
static final String DEFAULT_ENABLED
LRUNexus is now disabled by default. With the
removal of the synchronization bottlenecks in the low levels of the
RW and WORM Journal modes, it is now more efficient to NOT use the
embedded concurrent non-blocking caches and to pass through the
burden of cache operations to the OS. Also, due to the large number
of records retained by the embedded cache and the length of time that
those records are retained, the embedded concurrent non-blocking
caches have proven to be a challenge to the garbage collector. If
enabled, it is advisable to use the
-XX:+UseParallelOldGC GC option in order to avoid JVM
hangs or crashes.
static final String PERCENT_HEAP
[0.0:1.0]. This is used IFF
MAX_HEAP is not specified or is ZERO (0), which is its
default value. If both options are zero, then the maximum heap is
understood to be zero and the LRUNexus.INSTANCE will be
disabled.
static final String DEFAULT_PERCENT_HEAP
MAX_HEAP.
static final String MAX_HEAP
PERCENT_HEAP and directly specifies
the maximum capacity of the LRUNexus.INSTANCE in bytes. If
both options are zero, then the maximum heap is understood to be zero
and the LRUNexus.INSTANCE will be disabled. Legal examples
include:
30000000 400m 2Gb
BytesUtil.getByteCount(String)static final String DEFAULT_MAX_HEAP
static final String PERCENT_CLEARED
IGlobalLRU
implementations.
static final String DEFAULT_PERCENT_CLEARED
static final String CLASS
IGlobalLRU implementation class.
DEFAULT_CLASSstatic final String DEFAULT_CLASS
IGlobalLRU implementation class (
).
FIXME The HardReferenceGlobalLRURecycler has less throughput
than the HardReferenceGlobalLRU but I want to test the
HardReferenceGlobalLRU more throughly on high throughput
cluster data loads to make sure that it is performing correctly.
Note: It is also possible that the HardReferenceGlobalLRU
causes problems with the tenured generation since the Entry instances
are always new, but they could last quite a while before eviction
from the LRU position if there is a large heap.
Scale-out should use the
HardReferenceGlobalLRURecyclerExplicitDeleteRequired to avoid
giving away the cached index segment records when an index segment
store is closed by a timeout.
For scale-up, the HardReferenceGlobalLRURecycler is fine. We
are not re-opening stores all the time so the weak value reference
semantics of that class do not cause a problem.
The recently written BCHMGlobalLRU2 implementation should be
ideal for both scale-out and scale-up once it has been tested more
throughly. Even better would be a LIRS access policy for that class.
static final String LOAD_FACTOR
static final String DEFAULT_LOAD_FACTOR
static final String CONCURRENCY_LEVEL
BCHMGlobalLRU2.
static final String DEFAULT_CONCURRENCY_LEVEL
static final String THREAD_LOCAL_BUFFERS
true the cache will use true per-thread
buffers to absorb access policy updates. When false, the
cache will use striped locks protecting a fixed array of buffers.
This property is not understood by all implementations.
static final String DEFAULT_THREAD_LOCAL_BUFFERS
static final String INITIAL_CAPACITY
static final String DEFAULT_INITIAL_CAPACITY
static final String LIMITING_CAPACITY
BCHMGlobalLRU. The option may or may not survive
as that feature is alpha.
DEFAULT_LIMITING_CAPACITYstatic final String DEFAULT_LIMITING_CAPACITY
static final String THREAD_LOCAL_BUFFER_CAPACITY
IGlobalLRU implementations.
static final String DEFAULT_THREAD_LOCAL_BUFFER_CAPACITY
static final String ACCESS_POLICY
BCHMGlobalLRU.
#DEFAULT_ACCESS_POLICY_ENUMstatic final String DEFAULT_ACCESS_POLICY
static final String MIN_CACHE_SET_SIZE
IRawStore cache instances that will be
retained by hard references when using an IGlobalLRU based on
a weak value hash map such as WeakReferenceGlobalLRU. This
controls the size of a hard reference ring buffer backing a weak
value hash map. The actual number of cache instances will be less if
fewer stores have been opened or if open stores have been
destroyed. More cache instances
will exist if there are hard references to more IRawStore
instances.
static final String DEFAULT_MIN_CACHE_SET_SIZE
static final String INDEX_SEGMENT_BUILD_POPULATES_CACHE
true, the IndexSegmentBuilder will
pre-populate the IGlobalLRU cache with the nodes and leaves
of the new index segment during the build or merge operation (default
"true").
static final String DEFAULT_INDEX_SEGMENT_BUILD_POPULATES_CACHE
HardReferenceGlobalLRURecyclerExplicitDeleteRequired.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||