bexhoma.experiments.dbmsbenchmarker module

Experiment class for DBMSBenchmarker benchmarks.

Provides DbmsBenchmarkerExperiment, which extends MixedExperiment to orchestrate the DBMSBenchmarker tool inside a Kubernetes cluster, including loading, benchmarking, and result collection phases.

Authors: Patrick K. Erdelt Copyright (C) 2020 Patrick K. Erdelt SPDX-License-Identifier: AGPL-3.0-or-later See LICENSE for details.

class bexhoma.experiments.dbmsbenchmarker.DbmsBenchmarkerExperiment(cluster, code=None, SF='1', num_experiment_to_apply=1, timeout=7200)

Bases: MixedExperiment

Experiment class for DBMSBenchmarker-based benchmarks.

Provides evaluate_results (which joins per-connection results on a dashboard pod and builds the evaluation cube) and show_summary (which presents per-query latencies, errors, and warnings).

TPC-H and TPC-DS subclass this to add their own benchmark registration and experiment dict template.

Subclasses: TpchExperiment, TpcdsExperiment.

evaluate_results(pod_dashboard: str = '') None

Let the dashboard pod build the evaluations. This is specific to dbmsbenchmarker.

  1. All local logs are copied to the pod.

  2. Benchmarker in the dashboard pod is updated (dev channel)

  3. All results of all DBMS are joined (merge.py of benchmarker) in dashboard pod

  4. Evaluation cube is built (python benchmark.py read -e yes) in dashboard pod

show_summary() None

Print the experiment summary by delegating to the primary benchmark.

Finds the benchmark with benchmark_index == 1 and calls its show_summary() template method, passing this experiment as the context object.