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:
- deploy DBMS_X in cluster size C_Y on cloud resources CR_Z
- execute workload W_A
- inject resource failure into DBMS cluster during workload execution
- 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 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