# Parameters for this Virtual Application (Application Instance - AI) type should
# be set on YOUR private configuration configuration file, including the ones 
# commented.

[AI_TEMPLATES : CASSANDRA_YCSB]

# Attributes MANDATORY for all Virtual Applications
#SUT = ycsb->2_x_seed->1_x_cassandra
SUT = ycsb->2_x_seed
LOAD_BALANCER_SUPPORTED = $False
RESIZE_SUPPORTED = $True
REGENERATE_DATA = $True
LOAD_GENERATOR_ROLE = ycsb
LOAD_MANAGER_ROLE = ycsb
METRIC_AGGREGATOR_ROLE = ycsb
CAPTURE_ROLE = ycsb
LOAD_BALANCER = $False
LOAD_PROFILE = workloadd
LOAD_LEVEL = 1
LOAD_DURATION = 60
CATEGORY = transactional
PROFILES = workloada, workloadb, workloadc, workloadd, workloade, workloadf
REFERENCE = https://github.com/brianfrankcooper/YCSB
LICENSE = Apache_v2
REPORTED_METRICS = throughput,latency,datagen_time,datagen_size,completion_time,errors,insert_operations,read_operations,quiescent_time

# VApp-specific MANDATORY attributes
DESCRIPTION =Deploys a Cassandra cluster (N seed instances and M data instances),\n
DESCRIPTION +=plus one instance running the YCSB benchmark. This single instance\n
DESCRIPTION +=sends requests to all seed node instances simultaneously.\n
DESCRIPTION +=  - LOAD_PROFILE possible values: _PROFILES_ (for a proper\n
DESCRIPTION +=    description, consult the section "Core Workloads" on the YCSB\n
DESCRIPTION +=    documentation)\n
DESCRIPTION +=  - LOAD_LEVEL meaning: number of threads on YCSB (parameter -threads).\n 
DESCRIPTION +=  - LOAD_DURATION meaning: not used, a run ends when all YCSB\n
DESCRIPTION +=    operations (default is 1000) are finished.\n
DESCRIPTION +=  - COMMENT: One of the "Big Data" Workloads. One of the two\n 
DESCRIPTION +=    Virtual Applications types selected for the SPECCloud 2014 v1.0\n 
DESCRIPTION +=    benchmark. When new seed nodes are added (after an "airesize")\n
DESCRIPTION +=    the VM running YCSB will automatically direct requests to these\n
DESCRIPTION +=    new seed nodes.
CASSANDRA_SETUP1 = cb_restart_node.sh
SEED_SETUP1 = cb_restart_seed.sh
YCSB_SETUP2 = cb_setup_ycsb.sh
CASSANDRA_RESIZE1 = cb_restart_node.sh
SEED_RESIZE1 = cb_restart_seed.sh
CASSANDRA_RESET1 = cb_restart_node.sh
SEED_RESET1 = cb_restart_seed.sh
START=cb_run_ycsb.sh

# VApp-specific OPTIONAL modifier parameters. Commented attributes imply default values assumed
JAVA_HOME = auto
JVM_STACK_SIZE = 1024k
READ_RATIO = workloaddefault
UPDATE_RATIO = workloaddefault
APP_COLLECTION = lazy
CASSANDRA_DATA_DIR = /dbstore
CASSANDRA_DATA_FSTYP = ext4
SEED_DATA_DIR = /dbstore
SEED_DATA_FSTYP = ext4
YSCB_DATA_DIR = /dbstore
YCSB_DATA_FSTYP = ext4
#YCSB_PROFILE = cassandra2-cql
YCSB_PROFILE = cassandra-10
OPERATION_COUNT = 10000
INPUT_RECORDS = 10000
RECORD_SIZE = 2.35
DATABASE_SIZE_VERSUS_MEMORY = 0.5
REPLICATION_FACTOR = 3
LOAD_THREADS = 8
DROP_KEYSPACE = 1

# Inter-Virtual Application instances (inter-AI) synchronized execution. Entirely optional
#SYNC_COUNTER_NAME = synchronization_counter
#CONCURRENT_AIS = 2
#SYNC_CHANNEL_NAME = synchronization_channel
#RUN_COUNTER_NAME = experiment_id_counter
