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

[AI_TEMPLATES : MONGO_YCSB]

# Attributes MANDATORY for all Virtual Applications
SUT = ycsb->mongos->mongo_cfg_server->3_x_mongodb
LOAD_BALANCER_SUPPORTED = $False
RESIZE_SUPPORTED = $True
REGENERATE_DATA = $True
LOAD_GENERATOR_ROLE = ycsb
LOAD_MANAGER_ROLE = ycsb
METRIC_AGGREGATOR_ROLE = ycsb
CAPTURE_ROLE = mongodb
LOAD_BALANCER = $False
LOAD_PROFILE = workloada
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 MongoDB cluster (N mongodb instances, 1 cfg_server instance\n
DESCRIPTION +=and 1 mongos instance), plus one instance running the YCSB benchmark.\n
DESCRIPTION +=This single instance sends requests to all mongodb nodes simultaneously.\n
DESCRIPTION +=  - LOAD_PROFILE possible values: _PROFILES_ (for a proper\n
DESCRIPTION +=    description, consult the section "Core Workloads" on the YCSB 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 operations\n
DESCRIPTION +=    (default is 1000) are finished.\n
MONGO_CFG_SERVER_SETUP1 = cb_restart_mongo_cfg.sh
MONGODB_SETUP1 = cb_restart_mongo.sh
MONGOS_SETUP2 = cb_restart_mongos.sh
YCSB_SETUP2 = cb_setup_ycsb.sh
MONGODB_RESIZE1 = cb_modify_hosts.sh
MONGOS_RESIZE2 = cb_modify_shard.sh
MONGODB_RESIZE1 = cb_restart_mongo.sh
MONGO_CFG_SERVER_RESIZE1 = cb_modify_hosts.sh
START = cb_run_ycsb.sh

# VApp-specific modifier parameters. Commented attributes imply default values assumed
APP_COLLECTION = lazy
RUN_COUNTER_NAME = experiment_id_counter
MONGODB_DATA_DIR = /dbstore
MONGODB_DATA_FSTYP = ext4
OPERATION_COUNT = 10000
READ_RATIO = workloaddefault
UPDATE_RATIO = workloaddefault
OPERATION_COUNT = 10000
INPUT_RECORDS = 10000
RECORD_SIZE = 2.35
DATABASE_SIZE_VERSUS_MEMORY = 0.5
REPLICATION_FACTOR = 3
LOAD_THREADS = 8

# 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
