Blame view

decision/templates/experiments/Coordinator.properties 4.63 KB
8146dcf82   Thanasis Naskos   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
  [config]
  ## The installation directory
  install_dir = INSTALL_DIR
  ## The type of API to call the cluster controller
  cloud_api_type = ganeti
  ## The dir that contains the credentials downloaded from Eucalyptus Web frontend
  #euca_rc_dir = /root/creds/
  ## The bucket that contains the emi to use. All dbs are installed in the /opt directory inside the image.
  bucket_name = snf-image+cassandra310
  ## The default size for instances
  instance_type = 10000_4_10000
  ## The name of the cluster
  cluster_name = thanos-ganeti
  ## The template for instance hostnames 
  hostname_template = ganeti-nodes-
  ## Are we reconfiguring an existing cluster?
  reconfigure = False
  ## Cluster type (supported types are: HBASE, HBASE92, HBASE94, CASSANDRA,CASSANDRA115,CASSANDRA223, RIAK)
  cluster_type = CASSANDRA310
  ## Temporary database location
  db_file = INSTALL_DIR/eMRE.LOGS.tiramola.db 
  #set logs folder name
  logs_folder_name = LOGS
  ##set the logging level
  logging_level=debug
  
  ##okeanos configuration
  ##Private network id (to add created VMs)
  network_id = 41098
  network_id_2 = 43308
  okeanos_compute_public_url = https://cyclades.okeanos.grnet.gr/compute/v2.0
  okeanos_token = D77IVpU4BbzO9jJXV_kdeMGo0L5FNSzc1gCQsitFWkA
  clients_bucket_name = snf-image+ycsb
  clients_instance_type = 10000_2_8000
  training_set_name = TRAINING_SET_NAME_VAR
  training_set_length = TRAINING_SET_LENGTH
  reward_function_name = REWARD_FUNCTION_NAME_VAR
  
  ## Prism executable path
  prism_file_path = PRISM_PATH_VAR
  prism_multi_file_path = PRISM_MULTI_PATH_VAR
  prism_output_folder = PRISM_OUTPUT_FOLDER
  
  ## model configuration
  max_steps = MAXSTEPS
  cumulative = CUMULATIVE
  
  ##simulation configuration
  simulation = SIMULATION_VAR
  sim_meas_count = MEAS_COUNT_VAR
  iteration = ITERATION_VAR
  sim_new_inlambda = PRODUCE_NEW_INLAMBDA_VAR
  load_meas_log = LOAD_MEAS_LOG
  sim_inlambda_file_path = LOAD_FILE_VAR
  
  
  ##elasticity configuration
  ## Starting one master and one node originally (min = 2)
  initial_cluster_size=INIT_VAR
  min_cluster_size=MIN_VAR
  ## Maximum cluster size (cost considerations) 
  max_cluster_size=MAX_VAR
  ## How many nodes to add in each add action
  add_nodes = ADD_VAR
  ## How many nodes to remove in each add action
  rem_nodes = REM_VAR
  num_of_clusters = CLUSTERS_VAR
  gain_punishment = PUNISHMENT
  weighted_reward = WEIGHTEDREWARD
  latency_threshold = LATENCY_VAR
  window_inlambda = WINDOW_VAR
  ewma_inlambda = EWMA_VAR
  violation_cluster = VIOLATIONCLUSTER
  hourly = HOURLY
  
  ##attack
  attack = ATTACK
  transient_counter_limit = TRANSIENTCOUNTER
  
  
  ##policy configuration (only one True at a time)
  ##policy type (supported types are: RL-TB, MDP-TB, MDP-EB, MDP-EBG, MDP2, MDP3)
  policy = POLICY_VAR
  
  ##policy case type (supported types are: NOPROB, PROB, RF, RAF)
  policy_case = POLICYCASE
  accepted_percentage = ACCEPTANCEPERC
  
  spot_prices_db = SPOTPRICEDB
  
  ########## BASED ON LAMBDA AND LATENCY ################
  ## Average max throughput per server
  serv_throughput = SERVER_THROUGHPUT_VAR
  ## Cost function that provides the state transition cost for the FSMDecisionMaker
  #trans_cost = 1
  ## The gain function of staying at a particular state. This in essense is a rate.
  #gain =  max(0,((  min( max_throughput, inlambda) - max(0, (latency-2000)/1000.0)*max_throughput ) * 0.002 ) - (num_nodes * 0.4) )
  ## Rigged gain for rebalancing
  ## Force add nodes
  #gain =   num_nodes
  ## Force remove nodes
  #gain =   -1 * num_nodes
  
  ######### BASED ON PERFORMANCE ###############
  #gain=throughput/num_nodes
  #gain=1.0/num_nodes
  gain=GAIN_VAR
  trans_cost = 0
  
  ########## BASED ON "r3(s)=B×thr−C×|VMs|^2" of Tirmaola_Socc2012_submission ################
  #gain = 0.01*throughput
  #trans_cost = 0.2*(num_nodes*num_nodes)
  
  ########## BASED ON CPU ONLY ################
  ## Cost function that provides the state transition cost for the FSMDecisionMaker
  #trans_cost = ((max_throughput * 0.0001) - (added_nodes * cpu))
  ## The gain function of staying at a particular state. This in essense is a rate.
  #gain = ((num_nodes * cpu ) - (num_nodes * 40))
  
  ########## BASED ON LATENCY ################
  ## Cost function that provides the state transition cost for the FSMDecisionMaker
  #trans_cost =   ((max_throughput * 0.002 * 0.9) + (added_nodes * 10000 * 0.002))
  ## The gain function of staying at a particular state. This in essense is a rate.
  #gain = ((max_throughput * 0.002) - (num_nodes * 400) + (latency * max_throughput * 0.01))
  
  [thresholds_add]
  ## Add the thresholds that the Coordinator will monitor and decide whether to add/remove nodes.
  ## The metrics that follow provide example setup.
  #mem_free = low_1000000
  #disk_free = low_%10
  #load_five = high_0.4
  #cpu_idle = low_60
  #cpu_wio = low_5
  #load_five = high_10
  
  [thresholds_remove]
  #mem_free = high_11000000
  #load_five = low_1
  #cpu_idle = high_85
  #load_five = low_0