Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/polypheny/polypheny-simple-client
A simple benchmarking and testing client for Polypheny.
https://github.com/polypheny/polypheny-simple-client
Last synced: 6 days ago
JSON representation
A simple benchmarking and testing client for Polypheny.
- Host: GitHub
- URL: https://github.com/polypheny/polypheny-simple-client
- Owner: polypheny
- License: mit
- Created: 2020-01-10T21:03:57.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-04-08T14:41:30.000Z (7 months ago)
- Last Synced: 2024-04-08T18:10:41.700Z (7 months ago)
- Language: Java
- Homepage:
- Size: 1.78 MB
- Stars: 6
- Watchers: 6
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Polypheny Simple Client
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**](http://hstore.cs.brown.edu/projects/auctionmark/): A benchmark executing workload that simulates the activities found in a well-known auction site.
* [**SmallBank**](http://ses.library.usyd.edu.au/bitstream/2123/5353/1/michael-cahill-2009-thesis.pdf): The SmallBank benchmark models a simple banking application.
* [**TPC-C**](http://www.tpc.org/tpcc/): A well-known on-line transaction processing (OLTP) benchmark.
* [**TPC-H**](http://www.tpc.org/tpch/): A decision support benchmark consisting of a suite of business oriented ad-hoc queries and concurrent data modifications.
* [**YCSB**](https://github.com/brianfrankcooper/YCSB): Benchmark for evaluating the performance of "key-value" and "cloud" serving stores.
* [**MMSBench-Net**](https://gvdb23.informatik.uni-stuttgart.de/wp-content/uploads/2023/06/GvDB2023_Lengweiler.pdf) A benchmark for multi-model database systems simulating a network monitoring application.This benchmarking client contains a [Chronos](https://chronos-eaas.org/) connector. This allows to easily execute evaluation campaigns.
## Getting Started
This client can either be started in a stand-alone mode for quick testing or in a chronos mode for automated benchmarking using [Chronos](https://chronos-eaas.org/).
### Chronos
```
SYNOPSIS
polypheny-simple-client.jar chronos [ {-cc | --chronos} ]
[ {-e | --environment} ] [ --host ]
[ --control-username ]
[ --control-password ]
[ {-p | --port} ] [ --queryList ] {-s | --supports}
[ --writeCSV ]OPTIONS
-cc , --chronos
Hostname or IP address of the Chronos Control.-e , --environment
Identifier of the Chronos evaluation environment this client
belongs to (default: "default").--host
Hostname or IP address of the host running the system(s) to be
benchmarked (default: 127.0.0.1).
--control-username
The username to be used for authentication with Polypheny Control.
--control-password
The password to be used for authentication with Polypheny Control.-p , --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
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).
```### Stand-alone
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.
## Roadmap
See the [open issues](https://github.com/polypheny/Polypheny-DB/labels/A-client) for a list of proposed features (and known issues).
## Contributing
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](https://github.com/polypheny/Admin) and our [Website](https://polypheny.org) for guidelines and additional information.
Please note that we have a [code of conduct](https://github.com/polypheny/Admin/blob/master/CODE_OF_CONDUCT.md). Please follow it in all your interactions with the project.
## Credits
_Polypheny Simple Client_ builds upon the great work of several other open-source projects:
* [Airline](https://rvesse.github.io/airline/): Annotation-driven Java library for building command line interfaces.
* [Apache Commons](http://commons.apache.org/): A bunch of useful Java utility classes.
* [Chronos](https://chronos-eaas.org/): A system for defining, executing, and monitoring evaluations.
* [jCodec](https://github.com/Devskiller/jfairy/): Pure java implementation of video/audio codecs.
* [jFairy](https://github.com/Devskiller/jfairy/): A library for generating fake data.
* [Log4j](https://logging.apache.org/log4j/2.x/): Fast and flexible logging framework for Java.
* [Opencsv](http://opencsv.sourceforge.net/): Library for parsing CSV (comma-separated values) data.
* [Project Lombok](https://projectlombok.org/): A library providing compiler annotations for tedious tasks.
* [Shadow](https://imperceptiblethoughts.com/shadow/): Gradle plugin for creating fat JARs.
* [SLF4J](http://www.slf4j.org/): Provides a logging API by means of a facade pattern.
* [Unirest](http://kong.github.io/unirest-java/): A lightweight HTTP client library.
* [zip4j](https://github.com/srikanth-lingala/zip4j): A Java library for zip files and streams.## License
The MIT License (MIT)