This directory contains benchmarks for the Synmetrix backend. The benchmarks are
- Cube caching benchmark
- Cube pre-aggregations (materialized views) benchmark
- Synmetrix with Cube Highload benchmark: 1000 datasources with 1000 metrics each (1M metrics in total)
To run the benchmarks, you need to have Synmetrix a specific test environment running.
The test environment is a docker swarm services with cube and hasura replicas to simulate a real-world environment. Test data is generated and stored in PostgreSQL database.
The test environment is described in the docker-compose.test.yml file in the root of the Synmetrix repository.
git clone https://github.com/mlcraft-io/examplesand navigate to the benchmarks folder:
cd examples/benchmarks- Clone the Synmetrix repository:
git clone https://github.com/mlcraft-io/mlcraft && cd mlcraft- Start the test Docker Swarm stack:
./cli.sh swarm up --init --env test synmetrix-test- Run migrations:
./migrate.shNOTE: Benchmarks uses Synmetrix seed data to run tests from demo@synmetrix.org user.
- Run the benchmarks:
cd ../ && ./run-benchmarks.sh- Stop the test Docker Swarm stack:
cd mlcraft && ./cli.sh swarm destroy synmetrix-testThe results of the benchmarks are stored in the results directory. The results are stored in the csv format representing the benchmark results in a tabular format.
Data from the csv files can be visualized using any data visualization tool like Excel, Google Sheets, or any other tool.