com.bigdata.journal
Interface ConcurrencyManager.Options

All Superinterfaces:
IServiceShutdown.Options
All Known Subinterfaces:
DataServer.Options, DataService.Options, Journal.Options, MetadataServer.Options, MetadataService.Options
Enclosing class:
ConcurrencyManager

public static interface ConcurrencyManager.Options
extends IServiceShutdown.Options

Options for the ConcurrentManager.

Version:
$Id: ConcurrencyManager.java 5809 2011-12-19 16:56:48Z thompsonbry $
Author:
Bryan Thompson

Field Summary
static String DEFAULT_READ_SERVICE_CORE_POOL_SIZE
          The default #of threads in the read service thread pool.
static String DEFAULT_TX_SERVICE_CORE_POOL_SIZE
          The default #of threads in the transaction service thread pool.
static String DEFAULT_WRITE_SERVICE_CORE_POOL_SIZE
          The default minimum #of threads in the write service thread pool.
static String DEFAULT_WRITE_SERVICE_GROUP_COMMIT_TIMEOUT
           
static String DEFAULT_WRITE_SERVICE_KEEP_ALIVE_TIME
           
static String DEFAULT_WRITE_SERVICE_MAXIMUM_POOL_SIZE
          The default for the maximum #of threads in the write service thread pool.
static String DEFAULT_WRITE_SERVICE_OVERFLOW_LOCK_REQUEST_TIMEOUT
           
static String DEFAULT_WRITE_SERVICE_PRESTART_ALL_CORE_THREADS
          The default for WRITE_SERVICE_PRESTART_ALL_CORE_THREADS.
static String DEFAULT_WRITE_SERVICE_QUEUE_CAPACITY
          The default maximum depth of the write service queue (0).
static String READ_SERVICE_CORE_POOL_SIZE
          The #of threads in the pool handling concurrent unisolated read requests on named indices -or- ZERO (0) if the size of the thread pool is not fixed (default is 0).
static String TX_SERVICE_CORE_POOL_SIZE
          The #of threads in the pool handling concurrent transactions.
static String WRITE_SERVICE_CORE_POOL_SIZE
          The minimum #of threads in the pool handling concurrent unisolated write on named indices (default is "10").
static String WRITE_SERVICE_GROUP_COMMIT_TIMEOUT
          The timeout in milliseconds that the the WriteExecutorService will await other tasks to join the commit group (default "100").
static String WRITE_SERVICE_KEEP_ALIVE_TIME
          The time in milliseconds that the WriteExecutorService will keep alive excess worker threads (those beyond the core pool size).
static String WRITE_SERVICE_MAXIMUM_POOL_SIZE
          The maximum #of threads allowed in the pool handling concurrent unisolated write on named indices (default is "10".
static String WRITE_SERVICE_OVERFLOW_LOCK_REQUEST_TIMEOUT
          The time in milliseconds that a group commit will await an exclusive lock on the write service in order to perform synchronous overflow processing (default "120000").
static String WRITE_SERVICE_PRESTART_ALL_CORE_THREADS
          When true, the write service will be prestart all of its worker threads (default "false").
static String WRITE_SERVICE_QUEUE_CAPACITY
          The maximum capacity of the write service queue before newly submitted tasks will be rejected -or- ZERO (0) to use a SynchronousQueue (default ).
 
Fields inherited from interface com.bigdata.service.IServiceShutdown.Options
DEFAULT_SHUTDOWN_TIMEOUT, SHUTDOWN_TIMEOUT
 

Field Detail

TX_SERVICE_CORE_POOL_SIZE

static final String TX_SERVICE_CORE_POOL_SIZE
The #of threads in the pool handling concurrent transactions.

See Also:
DEFAULT_TX_SERVICE_CORE_POOL_SIZE

DEFAULT_TX_SERVICE_CORE_POOL_SIZE

static final String DEFAULT_TX_SERVICE_CORE_POOL_SIZE
The default #of threads in the transaction service thread pool.

See Also:
Constant Field Values

READ_SERVICE_CORE_POOL_SIZE

static final String READ_SERVICE_CORE_POOL_SIZE
The #of threads in the pool handling concurrent unisolated read requests on named indices -or- ZERO (0) if the size of the thread pool is not fixed (default is 0).

See Also:
DEFAULT_READ_SERVICE_CORE_POOL_SIZE

DEFAULT_READ_SERVICE_CORE_POOL_SIZE

static final String DEFAULT_READ_SERVICE_CORE_POOL_SIZE
The default #of threads in the read service thread pool.

See Also:
READ_SERVICE_CORE_POOL_SIZE, Constant Field Values

WRITE_SERVICE_CORE_POOL_SIZE

static final String WRITE_SERVICE_CORE_POOL_SIZE
The minimum #of threads in the pool handling concurrent unisolated write on named indices (default is "10"). The size of the thread pool will automatically grow to meet the possible concurrency of the submitted tasks up to the configured WRITE_SERVICE_MAXIMUM_POOL_SIZE.

The main factor that influences the throughput of group commit is the potential concurrency of the submitted ITx.UNISOLATED tasks (both how many can be submitted in parallel by the application and how many can run concurrency - tasks writing on the same index have a shared dependency and can not run concurrently).

Each ITx.UNISOLATED task that completes processing will block until the next commit, thereby absorbing a worker thread. For this reason, it can improve performance if you set the core pool size and the maximum pool size for the write service higher that the potential concurrency with which the submitted tasks could be processed.

There is also a strong effect as the JVM performs optimizations on the running code, so randomize your tests. See StressTestGroupCommit for performance tuning.

See Also:
DEFAULT_WRITE_SERVICE_CORE_POOL_SIZE

DEFAULT_WRITE_SERVICE_CORE_POOL_SIZE

static final String DEFAULT_WRITE_SERVICE_CORE_POOL_SIZE
The default minimum #of threads in the write service thread pool.

See Also:
Constant Field Values

WRITE_SERVICE_MAXIMUM_POOL_SIZE

static final String WRITE_SERVICE_MAXIMUM_POOL_SIZE
The maximum #of threads allowed in the pool handling concurrent unisolated write on named indices (default is "10".

Note: This property is ignored if the WRITE_SERVICE_QUEUE_CAPACITY is ZERO (0) or Integer.MAX_VALUE!

See Also:
DEFAULT_WRITE_SERVICE_MAXIMUM_POOL_SIZE

DEFAULT_WRITE_SERVICE_MAXIMUM_POOL_SIZE

static final String DEFAULT_WRITE_SERVICE_MAXIMUM_POOL_SIZE
The default for the maximum #of threads in the write service thread pool.

See Also:
Constant Field Values

WRITE_SERVICE_KEEP_ALIVE_TIME

static final String WRITE_SERVICE_KEEP_ALIVE_TIME
The time in milliseconds that the WriteExecutorService will keep alive excess worker threads (those beyond the core pool size).


DEFAULT_WRITE_SERVICE_KEEP_ALIVE_TIME

static final String DEFAULT_WRITE_SERVICE_KEEP_ALIVE_TIME
See Also:
Constant Field Values

WRITE_SERVICE_PRESTART_ALL_CORE_THREADS

static final String WRITE_SERVICE_PRESTART_ALL_CORE_THREADS
When true, the write service will be prestart all of its worker threads (default "false").

See Also:
DEFAULT_WRITE_SERVICE_PRESTART_ALL_CORE_THREADS

DEFAULT_WRITE_SERVICE_PRESTART_ALL_CORE_THREADS

static final String DEFAULT_WRITE_SERVICE_PRESTART_ALL_CORE_THREADS
The default for WRITE_SERVICE_PRESTART_ALL_CORE_THREADS.

See Also:
Constant Field Values

WRITE_SERVICE_QUEUE_CAPACITY

static final String WRITE_SERVICE_QUEUE_CAPACITY
The maximum capacity of the write service queue before newly submitted tasks will be rejected -or- ZERO (0) to use a SynchronousQueue (default ).

Note: When the WRITE_SERVICE_QUEUE_CAPACITY is ZERO (0), a SynchronousQueue is used, the maximumPoolSize is ignored, and new Threads will be created on demand. This allow the #of threads to change in response to demand while ensuring that tasks are never rejected.

Note: A LinkedBlockingQueue will be used if the queue capacity is Integer.MAX_VALUE. The corePoolSize will never increase for an unbounded queue so the value specified for maximumPoolSize will be ignored and tasks will never be rejected. See ThreadPoolExecutor's discussion on queues for more information on this issue.

Note: When a bounded queue capacity is specified, tasks will be rejected if the the corePoolThreads are busy and the work queue is full.

See Also:
ThreadPoolExecutor, DEFAULT_WRITE_SERVICE_QUEUE_CAPACITY

DEFAULT_WRITE_SERVICE_QUEUE_CAPACITY

static final String DEFAULT_WRITE_SERVICE_QUEUE_CAPACITY
The default maximum depth of the write service queue (0).

See Also:
Constant Field Values

WRITE_SERVICE_GROUP_COMMIT_TIMEOUT

static final String WRITE_SERVICE_GROUP_COMMIT_TIMEOUT
The timeout in milliseconds that the the WriteExecutorService will await other tasks to join the commit group (default "100"). When ZERO (0), group commit is disabled since the first task to join the commit group will NOT wait for other tasks and the commit group will therefore always consist of a single task.

See Also:
DEFAULT_WRITE_SERVICE_GROUP_COMMIT_TIMEOUT

DEFAULT_WRITE_SERVICE_GROUP_COMMIT_TIMEOUT

static final String DEFAULT_WRITE_SERVICE_GROUP_COMMIT_TIMEOUT
See Also:
Constant Field Values

WRITE_SERVICE_OVERFLOW_LOCK_REQUEST_TIMEOUT

static final String WRITE_SERVICE_OVERFLOW_LOCK_REQUEST_TIMEOUT
The time in milliseconds that a group commit will await an exclusive lock on the write service in order to perform synchronous overflow processing (default "120000"). This lock is requested IFF overflow process SHOULD be performed (asynchronous overflow processing is enabled, asynchronous overflow processing is not ongoing, and the live journal extent exceeds the threshold extent).

The lock timeout needs to be of significant duration or a lock request for a write service under heavy write load will timeout, in which case an error will be logged. If overflow processing is not performed the live journal extent will grow without bound and the service will be unable to release older resources on the disk.


DEFAULT_WRITE_SERVICE_OVERFLOW_LOCK_REQUEST_TIMEOUT

static final String DEFAULT_WRITE_SERVICE_OVERFLOW_LOCK_REQUEST_TIMEOUT
See Also:
Constant Field Values


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