https://github.com/crate/tsperf

TSPERF Time Series Database Benchmark Suite. Framework for evaluating and comparing the performance of time series databases, in the spirit of TimescaleDB's TSBS.

https://github.com/crate/tsperf

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.7%) to scientific vocabulary

Keywords

benchmark benchmark-suite benchmarks cratedb database database-benchmarking database-perfomance database-performance-analysis influxdb mongodb mssql odbc postgresql time-series timescaledb timeseries timeseries-data timeseries-database timestream tsbs

Keywords from Contributors

interactive projection sequences genomics observability autograding hacking shellcodes archival modular
Last synced: 5 months ago · JSON representation

Repository

TSPERF Time Series Database Benchmark Suite. Framework for evaluating and comparing the performance of time series databases, in the spirit of TimescaleDB's TSBS.

Basic Info
Statistics
  • Stars: 5
  • Watchers: 7
  • Forks: 0
  • Open Issues: 9
  • Releases: 2
Topics
benchmark benchmark-suite benchmarks cratedb database database-benchmarking database-perfomance database-performance-analysis influxdb mongodb mssql odbc postgresql time-series timescaledb timeseries timeseries-data timeseries-database timestream tsbs
Created over 5 years ago · Last pushed over 1 year ago
Metadata Files
Readme Changelog License

README.md

TSPERF Time Series Database Benchmark Suite

TSPERF is a tool for evaluating and comparing the performance of time series databases, in the spirit of TimescaleDB's Time Series Benchmark Suite (TSBS).

» Documentation | Changelog | PyPI | Issues | Source code | License

CI Coverage Status License Downloads per month

Supported Python versions Status Package version

About

The tsperf program includes both a database workload generator, and a query timer. That effectively spans two domains, one for writing data, and another one for reading.

  • Data Generator: Generate time series data and feed it into database. Use tsperf write --help to explore its options.
  • Query Timer: Probe responsiveness of database on the read path. Use tsperf read --help to explore its options.

For the purpose of capacity testing, both domains try to simulate the generation and querying of time-series data. As the program is easy to use, it provides instant reward without the need to set up a whole data ingestion chain.

Features

General

  • Generate random data which follows a statistical model to better reflect real world scenarios, real world data is almost never truly random.
  • The "steady load"-mode can simulate a constant load of a defined number of messages per second.
  • Ready-made to deploy and scale data generators with Docker containers. In order to maximize performance, multiple instances of the data generator can be run in parallel. This can be achieved by parallelizing using Kubernetes.
  • Metrics are exposed for consumption by Prometheus.

Data Generator

  • Capability to define your own schema.
  • Full control on how many values will be inserted.
  • Scale out to multiple clients is a core concept.
  • Huge sets of data can be inserted without creating files as intermediate storage.

Database Coverage

  • CrateDB
  • InfluxDB
  • Microsoft SQL Server
  • MongoDB
  • PostgreSQL
  • TimescaleDB
  • Timestream

Install

Python package

shell pip install --user tsperf

Docker image

shell alias tsperf="docker run -it --rm --network=host ghcr.io/crate/tsperf:latest tsperf" tsperf --help

Usage

Please refer to the usage documentation.

Prior Art

cr8 + mkjson

mkjson combined with cr8 insert-json makes it easy to generate random entries into a table. See generate data sets using mkjson for an example how to use cr8 together with mkjson.

TSBS

The Time Series Benchmark Suite (TSBS) is a collection of Go programs that are used to generate datasets and then benchmark read and write performance of various databases.

Project Information

Contributing

We are always happy to receive code contributions, ideas, suggestions and problem reports from the community.

So, if you’d like to contribute you’re most welcome. Spend some time taking a look around, locate a bug, design issue or spelling mistake and then send us a pull request or open an issue on GitHub.

Thanks in advance for your efforts, we really appreciate any help or feedback.

Acknowledgements

Thanks to all the contributors who helped to co-create and conceive tsperf in one way or another and kudos to all authors of the foundational libraries.

License

This project is licensed under the terms of the Apache 2.0 license.

Owner

  • Name: Crate.io
  • Login: crate
  • Kind: organization
  • Email: office@crate.io
  • Location: San Francisco, Dornbirn, Berlin

CrateDB: Enabling Data Insights at Scale

GitHub Events

Total
  • Delete event: 2
  • Member event: 1
  • Issue comment event: 2
  • Pull request event: 4
  • Create event: 2
Last Year
  • Delete event: 2
  • Member event: 1
  • Issue comment event: 2
  • Pull request event: 4
  • Create event: 2

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 161
  • Total Committers: 6
  • Avg Commits per committer: 26.833
  • Development Distribution Score (DDS): 0.379
Past Year
  • Commits: 3
  • Committers: 1
  • Avg Commits per committer: 3.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Andreas Motl a****l@c****o 100
Joshua Hercher j****h@c****o 21
kamejosh k****h 20
dependabot[bot] 4****] 17
Walter Behmann 4****h 2
Johannes Faigle j****e@c****o 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 2
  • Total pull requests: 72
  • Average time to close issues: N/A
  • Average time to close pull requests: 11 days
  • Total issue authors: 1
  • Total pull request authors: 5
  • Average comments per issue: 0.5
  • Average comments per pull request: 0.21
  • Merged pull requests: 54
  • Bot issues: 0
  • Bot pull requests: 32
Past Year
  • Issues: 1
  • Pull requests: 14
  • Average time to close issues: N/A
  • Average time to close pull requests: 29 days
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 1.0
  • Average comments per pull request: 0.43
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 14
Top Authors
Issue Authors
  • amotl (2)
  • dependabot[bot] (1)
Pull Request Authors
  • dependabot[bot] (59)
  • amotl (28)
  • kamejosh (21)
  • WalBeh (1)
  • jayeff (1)
Top Labels
Issue Labels
dependencies (1) python (1)
Pull Request Labels
dependencies (59) python (55) cla-signed (8) github_actions (4)

Dependencies

.github/workflows/oci.yml actions
  • actions/cache v4 composite
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • actions/upload-artifact v4 composite
  • docker/build-push-action v5 composite
  • docker/login-action v3 composite
  • docker/metadata-action v5 composite
  • docker/setup-buildx-action v3 composite
  • docker/setup-qemu-action v3 composite
release/oci/Dockerfile docker
  • python 3.11 build
.github/workflows/release.yml actions
  • actions/checkout master composite
  • anothrNick/github-tag-action master composite
  • azure/docker-login v1 composite
.github/workflows/tests.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
pyproject.toml pypi
setup.py pypi