A simple benchmarking and testing client for Polypheny-DB. It includes support for the following benchmarks:
- Gavel: The Gavel benchmark simulates the workload of a fictional auction house.
- kNN-Bench: A benchmark tailored towards typical workloads of multimedia retrieval applications and especially k-Nearest-Neighbor search.
- Multimedia: This benchmarks produces workload containing or requesting randomly generated BLOBs.
- Graph: A simple synthetic graph benchmark that executes a mixture of DQL and DML Cypher queries against a pseudo-random network.
- DocBench: A simple benchmark for document schemas generating MongoQL queries.
- MultiBench: A benchmark that combines Gavel, Graph, and DocBench.
- AuctionMark: A benchmark executing workload that simulates the activities found in a well-known auction site.
- SmallBank: The SmallBank benchmark models a simple banking application.
- TPC-C: A well-known on-line transaction processing (OLTP) benchmark.
- TPC-H: A decision support benchmark consisting of a suite of business oriented ad-hoc queries and concurrent data modifications.
- YCSB: Benchmark for evaluating the performance of "key-value" and "cloud" serving stores.
- MMSBench-Net A benchmark for multi-model database systems simulating a network monitoring application.
This benchmarking client contains a Chronos connector. This allows to easily execute evaluation campaigns.
This client can either be started in a stand-alone mode for quick testing or in a chronos mode for automated benchmarking using Chronos.
SYNOPSIS
polypheny-simple-client.jar chronos [ {-cc | --chronos} <chronos> ]
[ {-e | --environment} <environment> ] [ --host <IP or Port> ]
[ --control-username <Polypheny Control Username> ]
[ --control-password <Polypheny Control Password> ]
[ {-p | --port} <port> ] [ --queryList ] {-s | --supports} <supports>
[ --writeCSV ]
OPTIONS
-cc <chronos>, --chronos <chronos>
Hostname or IP address of the Chronos Control.
-e <environment>, --environment <environment>
Identifier of the Chronos evaluation environment this client
belongs to (default: "default").
--host <IP or Port>
Hostname or IP address of the host running the system(s) to be
benchmarked (default: 127.0.0.1).
--control-username <Polypheny Control Username>
The username to be used for authentication with Polypheny Control.
--control-password <Polypheny Control Password>
The password to be used for authentication with Polypheny Control.
-p <port>, --port <port>
Port of the REST API of the Chronos Control server (default: 443).
--queryList
Dump all Gavel queries as SQL into a file (default: false).
-s <supports>, --supports <supports>
Comma-separated list of system identifiers supported by this
client. Depends on the Chronos instance.
--writeCSV
Write a CSV file containing execution times for all executed
queries (default: false).
This client can be used by specifying the name of the benchmark as first parameter and the task as second parameter. Optionally, it is also possible to specify a multiplier for the data and workload (integer > 0). The general syntax is identical for all benchmarks:
java -jar polypheny-simple-client.jar BENCHMARK TASK [ MULTIPLIER ]
Use the help
command to get an overview of all available parameters for a benchmark. For example:
java -jar polypheny-simple-client.jar help gavel
BENCHMARK: { gavel | knnbench | multimedia | graph | docbench | multibench | auctionmark | smallbank | tpcc | tpch | ycsb | coms }
TASK: { schema | data | workload | warmup }
MULTIPLIER: Optional parameter taking an integer for multiplying the number of data and queries. Defaults to 1.
See the open issues for a list of proposed features (and known issues).
We highly welcome your contributions to Polypheny Simple Client. If you would like to contribute, please fork the repository and submit your changes as a pull request. Please consult our Admin Repository and our Website for guidelines and additional information.
Please note that we have a code of conduct. Please follow it in all your interactions with the project.
Polypheny Simple Client builds upon the great work of several other open-source projects:
- Airline: Annotation-driven Java library for building command line interfaces.
- Apache Commons: A bunch of useful Java utility classes.
- Chronos: A system for defining, executing, and monitoring evaluations.
- jCodec: Pure java implementation of video/audio codecs.
- jFairy: A library for generating fake data.
- Log4j: Fast and flexible logging framework for Java.
- Opencsv: Library for parsing CSV (comma-separated values) data.
- Project Lombok: A library providing compiler annotations for tedious tasks.
- Shadow: Gradle plugin for creating fat JARs.
- SLF4J: Provides a logging API by means of a facade pattern.
- Unirest: A lightweight HTTP client library.
- zip4j: A Java library for zip files and streams.
The MIT License (MIT)