All Projects → faclc4 → HTAPBench

faclc4 / HTAPBench

Licence: Unknown, Unknown licenses found Licenses found Unknown LICENSE Unknown license.txt
Benchmark suite to evaluate HTAP database engines

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to HTAPBench

Papers4DataAchitect
Collect papers for data engineering such as OLTP/OLAP/ETL/DistributedStorage.
Stars: ✭ 17 (+13.33%)
Mutual labels:  olap, oltp
matrixone
Hyperconverged cloud-edge native database
Stars: ✭ 1,057 (+6946.67%)
Mutual labels:  olap, htap
Radon
RadonDB is an open source, cloud-native MySQL database for building global, scalable cloud services
Stars: ✭ 1,584 (+10460%)
Mutual labels:  olap, oltp
IGUANA
IGUANA is a benchmark execution framework for querying HTTP endpoints and CLI Applications such as Triple Stores. Contact: [email protected]
Stars: ✭ 22 (+46.67%)
Mutual labels:  benchmarks
Benchmarks
Some benchmarks of different languages
Stars: ✭ 2,108 (+13953.33%)
Mutual labels:  benchmarks
wat
How fast are computers?
Stars: ✭ 26 (+73.33%)
Mutual labels:  benchmarks
LinqBenchmarks
Benchmarking LINQ and alternative implementations
Stars: ✭ 138 (+820%)
Mutual labels:  benchmarks
PheKnowLator
PheKnowLator: Heterogeneous Biomedical Knowledge Graphs and Benchmarks Constructed Under Alternative Semantic Models
Stars: ✭ 74 (+393.33%)
Mutual labels:  benchmarks
dlink
Dinky is an out of the box one-stop real-time computing platform dedicated to the construction and practice of Unified Streaming & Batch and Unified Data Lake & Data Warehouse. Based on Apache Flink, Dinky provides the ability to connect many big data frameworks including OLAP and Data Lake.
Stars: ✭ 1,535 (+10133.33%)
Mutual labels:  olap
go-ml-benchmarks
⏱ Benchmarks of machine learning inference for Go
Stars: ✭ 27 (+80%)
Mutual labels:  benchmarks
TT Tech Space
TT Tech Research Notes
Stars: ✭ 21 (+40%)
Mutual labels:  olap
Jctools
jctools.github.io/jctools
Stars: ✭ 2,833 (+18786.67%)
Mutual labels:  benchmarks
trie-perf
Performance shootout of various trie implementations
Stars: ✭ 18 (+20%)
Mutual labels:  benchmarks
BugZoo
Keep your bugs contained. A platform for studying historical software bugs.
Stars: ✭ 49 (+226.67%)
Mutual labels:  benchmarks
KuiBaDB
Another OLAP database
Stars: ✭ 297 (+1880%)
Mutual labels:  olap
TSForecasting
This repository contains the implementations related to the experiments of a set of publicly available datasets that are used in the time series forecasting research space.
Stars: ✭ 53 (+253.33%)
Mutual labels:  benchmarks
skiplist-survey
A comparison of skip lists written in Go
Stars: ✭ 47 (+213.33%)
Mutual labels:  benchmarks
anybench
CPU Benchmarks Set
Stars: ✭ 54 (+260%)
Mutual labels:  benchmarks
memo wise
The wise choice for Ruby memoization
Stars: ✭ 486 (+3140%)
Mutual labels:  benchmarks
Static-Sort
A simple C++ header-only library for fastest sorting of small arrays. Generates sorting networks on compile time via templates.
Stars: ✭ 30 (+100%)
Mutual labels:  benchmarks

HTAPBench

HTAPBench is derived from from OLTPBenchmark framework @ https://github.com/oltpbenchmark/oltpbench

The Hybrid Transactional and Analytical Processing Benchmark is targeted at assessing engines capable of delivering mixed workloads composed of OLTP transactions and OLAP business queries without resorting to ETL.

There are a few requirements to run HTAPBench:

  1. You need to have JAVA distribution (> 1.7) installed on the machine running HTAPBench.
  2. You need to have installed the JDBC driver for the database you want to test.

A. Build HTAPBench:

	mvn clean compile package

B. Configure HTAPBench:

Clone and adjust the example configuration file in config/htapb_config_postgres.xml to you test case.

Before you continue ensure that:

  • The database engine you wish to test is installed and that you can reach it from the machine running HTAPBench.
  • That the database engine to be tested is configured with the required memory and that the max_clients allowance is enough for you setup.
  • In the database engine to be tested, create a test database e.g., htapb.
  • In the database engine to be tested, create a user/password and grant all privileges to your test database.
  • In the database engine to be tested, install the database schema.
java -cp .:target/htapbench-0.95-jar-with-dependencies.jar pt.haslab.htapbench.core.HTAPBench -b database_name -c your_config_file.xml --create true --load false --generateFiles false --filePath yourdir/ --execute false --calibrate false

C. Populate

Before running HTAPBench, you will need to load data into the database. The generated workload is computed according to the configured TPS. If you change this parameter, you need to generate the database files again.

You have 2 choices

  1. Generate the CSV files to populate the database. (We recommend this method as it usually loads data faster.)
java -cp .:target/htapbench-0.95-jar-with-dependencies.jar pt.haslab.htapbench.core.HTAPBench -b database_name -c your_config_file.xml --generateFiles true --filePath dir --execute false --calibrate true

Afterwards you need to connect to the database engine console and use a Bulk Load command. e.g., in Postgresql use the psql command to establish a connection and load each (e.g., WAREHOUSE and OORDER) table in the schema.

> psql -h Postgres_host_IP -p Postgres_host_port -U postgres_user -d database_name
> COPY WAREHOUSE FROM '/dirwarehouse.csv' USING DELIMITERS ',';
> COPY OORDER FROM '/dirorder.csv' USING DELIMITERS ',' WITH NULL as 'null';

(different database engines will have different commands. Check the respective documentation)

  1. Populate the database directly from HTAPBench. This internally establishes a connection and performs insert statements.
java -cp .:target/htapbench-0.95-jar-with-dependencies.jar pt.haslab.htapbench.core.HTAPBench -b database_name -c your_config_file.xml --load true --execute false --calibrate true

C. Run Tests

Before running any tests ensure that the previous stage was successfully completed.

Then run:

java -cp .:target/htapbench-0.95-jar-with-dependencies.jar pt.haslab.htapbench.core.HTAPBench -b database_name -c config/htapb_config_postgres.xml --create false --load false --execute true --s 120 --calibrate false

Publications

If you are using this benchmark for your papers or for your work, please cite the paper:

HTAPBench: Hybrid Transactional and Analytical Processing Benchmark Fábio Coelho, João Paulo, Ricardo Vilaça, José Pereira, Rui Oliveira Proceedings of the 8th ACM/SPEC on International Conference on Performance Engineering

BibTex:

@inproceedings{Coelho:2017:HHT:3030207.3030228,
 author = {Coelho, F\'{a}bio and Paulo, Jo\~{a}o and Vila\c{c}a, Ricardo and Pereira, Jos{\'e} and Oliveira, Rui},
 title = {HTAPBench: Hybrid Transactional and Analytical Processing Benchmark},
 booktitle = {Proceedings of the 8th ACM/SPEC on International Conference on Performance Engineering},
 series = {ICPE '17},
 year = {2017},
 isbn = {978-1-4503-4404-3},
 location = {L'Aquila, Italy},
 pages = {293--304},
 numpages = {12},
 url = {http://doi.acm.org/10.1145/3030207.3030228},
 doi = {10.1145/3030207.3030228},
 acmid = {3030228},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {benchmarking, htap, olap, oltp},
} 
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].