com.bigdata
Interface LRUNexus.Options

Enclosing class:
LRUNexus

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.

Version:
$Id: LRUNexus.java 3305 2010-07-27 15:08:28Z thompsonbry $
Author:
Bryan Thompson

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

ENABLED

static final String ENABLED
Option may be used to (en|dis)able the LRUNexus.INSTANCE (default "false").


DEFAULT_ENABLED

static final String DEFAULT_ENABLED
Note: The 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.

See Also:
Constant Field Values

PERCENT_HEAP

static final String PERCENT_HEAP
The maximum heap capacity as a percentage of the JVM heap expressed as a value in [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.


DEFAULT_PERCENT_HEAP

static final String DEFAULT_PERCENT_HEAP
The default (".1") is a bit conservative. It is designed to leave some room for application data objects and GC. You may be able to get away with significantly more on machines with large RAM, or just specify the buffer heap size directly using MAX_HEAP.

See Also:
Constant Field Values

MAX_HEAP

static final String MAX_HEAP
This option overrides 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
 

See Also:
BytesUtil.getByteCount(String)

DEFAULT_MAX_HEAP

static final String DEFAULT_MAX_HEAP
See Also:
Constant Field Values

PERCENT_CLEARED

static final 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"). This parameter provides some "batching" of evictions but is not used by all IGlobalLRU implementations.


DEFAULT_PERCENT_CLEARED

static final String DEFAULT_PERCENT_CLEARED
See Also:
Constant Field Values

CLASS

static final String CLASS
The name of IGlobalLRU implementation class.

See Also:
DEFAULT_CLASS

DEFAULT_CLASS

static final String DEFAULT_CLASS
The default 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.


LOAD_FACTOR

static final String LOAD_FACTOR
The load factor for the cache instances.


DEFAULT_LOAD_FACTOR

static final String DEFAULT_LOAD_FACTOR
See Also:
Constant Field Values

CONCURRENCY_LEVEL

static final String CONCURRENCY_LEVEL
The concurrency level for the backing hash map(s). This property is not understood by all implementations. A value of ZERO (0) is interpreted in a special manner by BCHMGlobalLRU2.


DEFAULT_CONCURRENCY_LEVEL

static final String DEFAULT_CONCURRENCY_LEVEL
See Also:
Constant Field Values

THREAD_LOCAL_BUFFERS

static final String THREAD_LOCAL_BUFFERS
When 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.


DEFAULT_THREAD_LOCAL_BUFFERS

static final String DEFAULT_THREAD_LOCAL_BUFFERS
See Also:
Constant Field Values

INITIAL_CAPACITY

static final String INITIAL_CAPACITY
The initial capacity for the cache instances.


DEFAULT_INITIAL_CAPACITY

static final String DEFAULT_INITIAL_CAPACITY
See Also:
Constant Field Values

LIMITING_CAPACITY

static final 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.
The limiting cache capacity across all cache instances.

See Also:
DEFAULT_LIMITING_CAPACITY

DEFAULT_LIMITING_CAPACITY

static final String DEFAULT_LIMITING_CAPACITY
See Also:
Constant Field Values

THREAD_LOCAL_BUFFER_CAPACITY

static final String THREAD_LOCAL_BUFFER_CAPACITY
The capacity of the thread-local buffer used to amortize the cost of updating the access policy. This option is only understood by select IGlobalLRU implementations.


DEFAULT_THREAD_LOCAL_BUFFER_CAPACITY

static final String DEFAULT_THREAD_LOCAL_BUFFER_CAPACITY
See Also:
Constant Field Values

ACCESS_POLICY

static final String ACCESS_POLICY
The access policy (LIRS, LRU, etc). At the moment, this option is only understood by the BCHMGlobalLRU.

See Also:
#DEFAULT_ACCESS_POLICY_ENUM

DEFAULT_ACCESS_POLICY

static final String DEFAULT_ACCESS_POLICY

MIN_CACHE_SET_SIZE

static final 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. 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.


DEFAULT_MIN_CACHE_SET_SIZE

static final String DEFAULT_MIN_CACHE_SET_SIZE
See Also:
Constant Field Values

INDEX_SEGMENT_BUILD_POPULATES_CACHE

static final 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").


DEFAULT_INDEX_SEGMENT_BUILD_POPULATES_CACHE

static final String DEFAULT_INDEX_SEGMENT_BUILD_POPULATES_CACHE
FIXME Verify that [true] is the right behavior for scale-out. This is being tested in combination with the HardReferenceGlobalLRURecyclerExplicitDeleteRequired.

See Also:
Constant Field Values


Copyright © 2006-2011 SYSTAP, LLC. All Rights Reserved.