https://github.com/ydb-platform/tpcc-postgres
TPC-C for PostgreSQL
https://github.com/ydb-platform/tpcc-postgres
Last synced: 29 days ago
JSON representation
TPC-C for PostgreSQL
- Host: GitHub
- URL: https://github.com/ydb-platform/tpcc-postgres
- Owner: ydb-platform
- License: other
- Created: 2024-01-27T18:24:41.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-02-18T13:18:33.000Z (over 1 year ago)
- Last Synced: 2025-02-18T14:25:39.565Z (over 1 year ago)
- Language: Java
- Size: 105 MB
- Stars: 6
- Watchers: 4
- Forks: 3
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Overview
This is a fork of [BenchBase](https://github.com/cmu-db/benchbase) done to enhance TPC-C for PostgresSQL:
1. Fixed some performance issues in the original benchbase to speed up the benchmark.
2. To address issues with running high number of warehouses, we added support for virtual threads (requires Java >= 21).
3. Significantly reduced the memory footprint of the benchmark.
4. Added Hikari as a connection pool for PostgreSQL.
Please, note that this is for PostgreSQL only.
## Hardware requirements
Minumum requirements for running the benchmark against YDB:
* 2 cores and 4 GB RAM (for 100 warehouses)
* 4 cores and 6 GB RAM (for 1000 warehouses)
Above 1000 warehouses, the memory and CPU consumption grow linearly, you need:
* 1 core per 1000 warehouses
* 6 MB RAM per warehouse
E.g. to run 10000 warehouses you need to have at least 10 cores and 64 GB RAM. However, Instead of running 10000 warehouses on a single instance (and machine), we recommend to run at most 5000 warehouses per instance (preferably on separate machines).
To reduce memory consumption, make sure you don't use huge pages or transparent huge pages.
# TPC-C benchmark for PostgreSQL
## How to build
```
./mvnw clean package -P postgres -DskipTests
```
Prebuilt packages:
* [benchbase-postgres.tgz](https://storage.yandexcloud.net/ydb-benchmark-builds/benchbase-postgres.tgz)
## How to run
The simplest way is to use helper scripts from [benchhelpers](https://github.com/ydb-platform/benchhelpers). You can find the full instruction [here](https://github.com/ydb-platform/benchhelpers/blob/main/tpcc/postgres/README.md).