Hello, I'm James, a Developer Advocate at Timescale. Recently, I’ve been diving into performance topics, exploring the types of content I enjoy both reading and creating.
This series is designed to highlight specific performance concepts in Timescale, TimescaleDB, and Postgres through data visualizations. Expect no marketing fluff or unrealistic benchmarks, just clear, data-driven explorations of performance topics I find valuable and relevant.
Each article's directory contains:
- A link to the article
- Steps for reproducing the benchmarks
- A link to the PopSQL dashboard (if there are graphs in the post).
- Postgres DISTINCT: TimescaleDB's Skip Scan Under Load, (Github README)
- Boosting Postgres INSERT Performance by 50% With UNNEST, (Github README)
- Benchmarking PostgreSQL Batch Ingest, (Github README)
Most performance testing in this series will utilize Grafana k6 (GitHub), "an extensible load-testing tool built for Developer happiness".
I rely on the following extensions:
- xk6-sql for SQL database load testing
- xk6-output-timescaledb for sending test metrics to TimescaleDB
If you have Go installed, you can compile and install k6
with these extensions using the following commands:
go install go.k6.io/xk6/cmd/xk6@latest
xk6 build latest \
--with github.com/grafana/xk6-sql \
--with github.com/grafana/xk6-sql-driver-postgres \
--with github.com/grafana/xk6-output-timescaledb
You will now have a new k6
binary in your current directory with the extensions compiled in.