|  |  |  | Evaluating the Availability (performance impact, failed requests in case of resource failures) of a DBMS cluster. | 
|  |  |  |  | 
|  |  |  | ### Evaluation Scenario Workflow | 
|  |  |  |  | 
|  |  |  | The evaluation scenario execution comprises the following steps: | 
|  |  |  |  | 
|  |  |  | 1. deploy *DBMS_X* in cluster size *C_Y* on cloud resources *CR_Z* | 
|  |  |  | 2. execute workload *W_A* | 
|  |  |  | 3. inject resource failure into DBMS cluster during workload execution | 
|  |  |  | 4. process availability metrics based on throughput and latency metrics (beta) | 
|  |  |  |  | 
|  |  |  | ### Supported DBMS | 
|  |  |  |  | 
|  |  |  | - Cassandra | 
|  |  |  | - CockroachDB (beta) | 
|  |  |  | - Couchbase | 
|  |  |  | - Elasticsearch | 
|  |  |  | - MongoDB (beta) | 
|  |  |  | - Riak | 
|  |  |  |  | 
|  |  |  | ##### Important DBMS Parameters | 
|  |  |  | - databaseSeedComponent instances -> 1 seed instance + databaseSeedComponent  instances define the cluster size | 
|  |  |  | - ReplicationFactor -> 1..clustersize-1 | 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  | ### Supported Workloads | 
|  |  |  |  | 
|  |  |  | #### YCSB | 
|  |  |  | - Sensor Storage (YCSB write only) | 
|  |  |  | - YCSB (multi-phase: write + CRUD phase) | 
|  |  |  |  | 
|  |  |  | ##### Important YCSB Parameters | 
|  |  |  | - *maxExecutionTime* defines the runtime of the evaluation in seconds | 
|  |  |  | - *recordCount* defines the number of records to be inserted in the DBMS, i.e. the total number of operations in a sensor storage scenario | 
|  |  |  | - *operations* defines the total number of operations to be executed in a multi-phase scenario | 
|  |  |  | - *fieldLength* defines the size of a record in bytes * 10 (for number of items per record) | 
|  |  |  | - DBMS specific Read/Write consistency settings, please check the [YCSB DBMS bindings](https://github.com/brianfrankcooper/YCSB) for more details | 
|  |  |  |  | 
|  |  |  | #### TPC-C | 
|  |  |  | - TPC-C (by Cockroach loadgen) | 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  | #### Supported Clouds | 
|  |  |  |  | 
|  |  |  | - OpenStack V2 | 
|  |  |  | - OpenStack V3 | 
|  |  |  | - Amazon EC2 | 
|  |  |  |  | 
|  |  |  | #### Failure Specification | 
|  |  |  | - *failureLevel* defines the type of failure to inject, currently supported: VM | 
|  |  |  | - *nodeType* defines the target DBMS node to inject the failure, currently supported: DATA (recommended), SEED and MANAGEMENT (only for MongoDB) | 
|  |  |  | - *gibbonDelay* defines the delay before inserting the failure in parallel to the workload execution | 
|  |  |  | - *failureRecovery* defines if a recovery action should be triggered, i.e. adding a new node to the cluster | 
|  |  |  | - *recoveryDelay* defines the delay before triggering the recovery action | 
|  |  |  |  | 
|  |  |  | #### Examples | 
|  |  |  |  | 
|  |  |  | For getting started please have a look at the availability [example templates](https://omi-gitlab.e-technik.uni-ulm.de/mowgli/getting-started/tree/master/examples/availability) | 
|  |  |  | \ No newline at end of file |