com.bigdata.service.jini.benchmark
Interface ThroughputMaster.ConfigurationOptions

All Superinterfaces:
TaskMaster.ConfigurationOptions
Enclosing class:
ThroughputMaster

public static interface ThroughputMaster.ConfigurationOptions
extends TaskMaster.ConfigurationOptions

Configuration options for the ThroughputMaster.

Version:
$Id$
Author:
Bryan Thompson

Field Summary
static String ASYNCHRONOUS
          When true the client writes will use the asynchronous API.
static String INC_RANGE
          The keys for insert operations are selected by choosing a random key from the legal key range as a starting key and then advancing by a random number selected from [1:incRange].
static String MAX_KEYS_PER_OP
          The maximum #of keys to be used in each operation submitted by a client.
static String NAMESPACE
          The namespace for the indices registered by this job.
static String NPARTITIONS
          The #of index partitions (pre-splits the index).
static String OPERATION_COUNT
          The #of index operations to execute per client.
static String SEED
          The seed used for random data generation (default is 0, which uses a different seed for each run).
static String START_KEY_PARTITIONS
          Boolean option specifies whether the key ranges for client operations are disjoint or shared.
static String ZOOKEEPER_UPDATE_INTERVAL
          After every N operations, where N is specified by this property, the state of the client will be updated in zookeeper.
 
Fields inherited from interface com.bigdata.service.jini.master.TaskMaster.ConfigurationOptions
AGGREGATORS_TEMPLATE, CLIENTS_TEMPLATE, DELETE_JOB, FORCE_OVERFLOW, INDEX_DUMP_DIR, INDEX_DUMP_NAMESPACE, JOB_NAME, NAGGREGATORS, NCLIENTS, SERVICES_DISCOVERY_TIMEOUT, SERVICES_TEMPLATES
 

Field Detail

OPERATION_COUNT

static final String OPERATION_COUNT
The #of index operations to execute per client.

See Also:
Constant Field Values

SEED

static final String SEED
The seed used for random data generation (default is 0, which uses a different seed for each run).

See Also:
Constant Field Values

NAMESPACE

static final String NAMESPACE
The namespace for the indices registered by this job.

See Also:
Constant Field Values

ASYNCHRONOUS

static final String ASYNCHRONOUS
When true the client writes will use the asynchronous API. Otherwise they will use the synchronous RPC API.

See Also:
Constant Field Values

NPARTITIONS

static final String NPARTITIONS
The #of index partitions (pre-splits the index). ZERO (0) which is interpreted as NOT pre-splitting the index. There is no default.

See Also:
Constant Field Values

START_KEY_PARTITIONS

static final String START_KEY_PARTITIONS
Boolean option specifies whether the key ranges for client operations are disjoint or shared. When true, each client is assigned a key-range when it is created and the client will choose its startKey for each operations from that key-range. When false, each client chooses a startKey randomly from the entire key range for each task. There is no default.

See Also:
Constant Field Values

MAX_KEYS_PER_OP

static final String MAX_KEYS_PER_OP
The maximum #of keys to be used in each operation submitted by a client. The actual number of keys is selected randomly from within [1:maxKeys].

See Also:
Constant Field Values

INC_RANGE

static final String INC_RANGE
The keys for insert operations are selected by choosing a random key from the legal key range as a starting key and then advancing by a random number selected from [1:incRange].

This directly controls the maximum distance between keys in a batch operations. In turn, that translates into the "sparsity" of the operation. A small value (~10) can show 4x higher throughput than a value of 1000. This is because the btree cache is more or less being defeated as the spacing between the keys touched in any operation grows.

When incRange is small, the randomly generately keys will be tightly clustered and are likely to be not only within the same index partition by in the same region of the B+Tree on that index partition. As incRange is becomes larger, the keys are more likely to be distributed within a given index partition.

See Also:
Constant Field Values
TODO:
Even Integer.MAX_VALUE is not sufficient to cause scattering across index partitions since the range for Long is so much larger than the range Integer (it is restricted to Integer by Random.nextInt(int) but we could find a way to work around that)., update incRange => operations per second (Disk, no sync on commit, laptop, 5.23.07).
 
 10       463
 
 100      222
 
 1000     132
 
 10000    114
 
 100000   116
 

ZOOKEEPER_UPDATE_INTERVAL

static final String ZOOKEEPER_UPDATE_INTERVAL
After every N operations, where N is specified by this property, the state of the client will be updated in zookeeper. The interval may be varied in order to determine when zookeeper becomes a bottleneck for the database. The default is ZERO (0) which disables client updates in zookeeper entirely.

See Also:
Constant Field Values
TODO:
an expired session will end the run which makes this not very safe.


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