The testing process involves multiple modules that perform different tasks. Themodules and their APIs are listed below.
Governs the whole testing process. Runs different workloads during differenttroubles.
Puts workloads against the database. Writes logs that are later used byvalideaux.
start(id, workload, cluster) - starts aworkload against theclusterand call itid.stop(id) - stops a previously started workload calledid.
Manages the database nodes.
deploy(driver, ...) - deploys a cluster using the specifieddriver andother parameters specific to that driver. Returns acluster instance that isused in other methods.cluster->up(id) - adds a node namedid to thecluster.cluster->down(id) - removes a node namedid from thecluster.cluster->drop(src, dst, ratio) - dropratio packets flowing from nodesrc to nodedst.cluster->delay(src, dst, msec) - delay packets flowing from nodesrc tonodedst bymsec milliseconds.
This is the troublemaker that messes with the network, nodes and time.
cause(cluster, trouble, ...) - causes the specifiedtrouble in thespecifiedcluster with some trouble-specific parameters.fix(cluster) - fixes all troubles caused in thecluster.
Validates the logs of stresseaux.
Generates reports on the test results. This is usually a table that withtrouble vsworkload axes.