Note: the procedure described in this page is currently only accessible to DataStax employees.
A duration test applies a constant, pre-defined load to the cluster for an extended period of time, typically 2 or 3 days, while also generating some chaos by randomly restarting nodes. The load is a mix of reads, writes, and deletes.
Duration tests are useful to detect performance regressions between 2 different driver versions.
The Java driver duration tests are stored in a private repository accessible only to DataStax employees.
A duration test executes in an infinite loop the following actions:
The actions are performed randomly via SimpleStatements, BatchStatements (except on reads), and PreparedStatements.
DataStax internal Fallout server has modules that allow to automate running and monitoring duration tests.
keep_alive parameter that is large enough to run all the planned duration tests. E.g. if you intend to run duration tests for 10 days, set this parameter to a value greater than or equal to 10d. The default is 15 days.ctool-cluster-info.txt file of the server group: http://<graphite_server_ip>:3000 (VPN required). The username/password is Graphite's default: admin/admin.Two Grafana dashboards should be loaded automatically:
Java Driver 4 Duration Test Metrics (aggregate): provides high-level information such as the number of completed tests per minute. Useful to compare different test runs.Java Driver 4 Duration Test Metrics (focus): provides detailed information for one specific test run. Can be useful to drill down on issues encountered during the test, or to inspect latencies, throughput, etc.If the above Grafana dashboards are not loaded for some reason, they can be found in this private repository.
server_type andserver_version to match the exact server you plan on testing against;driver_rev and driver_label to be whatever driver revision you are using ( driver_label is merely for reporting purposes);graphite_host parameter to match the Graphite server IP obtained in the previous step;Once a test run is finished, the cluster and the client VMs are destroyed, but their logs are conserved as test artifacts in Fallout.