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

[AI_TEMPLATES : REDIS_YCSB]

# Attributes MANDATORY for all Virtual Applications
SUT = ycsb->redis
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 one or more VMs running standalone Redis server(s), plus
DESCRIPTION += one VM running the YCSB benchmark. This single VM sends requests
DESCRIPTION += to all seed Redis VMs simultaneously.\n
DESCRIPTION +=- LOAD_PROFILE possible values: _PROFILES_ (for a proper
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
DESCRIPTION += (default is 1000) are finished.\n
DESCRIPTION +=- COMMENT: One of the "Big Data" Workloads. One of the two 
DESCRIPTION += Virtual Applications types selected for the SPECCloud 2014 v1.0 
DESCRIPTION += benchmark. When new Redis nodes are added (after an "airesize")
DESCRIPTION += the VM running YCSB will automatically direct requests to these
DESCRIPTION += new nodes.
REDIS_SETUP1 = cb_restart_redis.sh
YCSB_SETUP2 = cb_setup_ycsb.sh
START = cb_run_ycsb.sh

# VApp-specific modifier parameters. Commented attributes imply default values assumed
READ_RATIO = workloaddefault
UPDATE_RATIO = workloaddefault
APP_COLLECTION = lazy
RUN_COUNTER_NAME = experiment_id_counter
REDIS_DATA_DIR = /dbstore
OPERATION_COUNT = 10000
INPUT_RECORDS = 10000
RECORD_SIZE = 2.35
DATABASE_SIZE_VERSUS_MEMORY = 0.5
REPLICATION_FACTOR = 4

# 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
