Skip to content

Repo to run TPCC benchmarks against YugabyteDB

License

Notifications You must be signed in to change notification settings

JDASoftwareGroup/tpcc

This branch is 6 commits behind yugabyte/tpcc:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3bd9e7c · Jun 3, 2024
Oct 10, 2022
Jan 10, 2020
Aug 22, 2022
Jun 3, 2024
Sep 6, 2022
Feb 23, 2021
Feb 23, 2021
Jan 10, 2020
Feb 3, 2023
Jan 10, 2020
Jan 10, 2020
Oct 26, 2023
Feb 13, 2020
Mar 16, 2021
Jan 10, 2020
Sep 29, 2023
Jul 22, 2020

Repository files navigation

TPCC benchmark

This is a fork of OLTPBench that is used to run the TPCC benchmark. All the other benchmarks have been removed.

Just like the original benchmark this is a multi-threaded load generator. The framework is designed to be able to produce variable rate, variable mixture load against any JDBC-enabled relational database. The framework also provides data collection features, e.g., per-transaction-type latency and throughput logs.

Dependencies

  • Java (+1.7)
  • Apache Ant

Environment Setup

  • Install Java, Ant and Ivy.
  • Download the source code.
    git clone https://github.com/yugabyte/tpcc.git
  • Run the following commands to build:
    ant bootstrap
    ant resolve
    ant build

Setup of the Database

The DB connection details should be as follows:

<!-- config/sample_tpcc_config.xml -->
    <!-- Connection details -->
    <dbtype>postgres</dbtype>
    <driver>org.postgresql.Driver</driver>
    <DBUrl>jdbc:postgresql://<ip>:5433/yugabyte</DBUrl>
    <username>yugabyte</username>
    <password></password>
    <isolation>TRANSACTION_REPEATABLE_READ</isolation>

The details of the workloads have already been populated in the sample config present in /config. The workload descriptor works the same way as it does in the upstream branch and details can be found in the on-line documentation.

Running the Benchmark

A utility script (./tpccbenchmark) is provided for running the benchmark. The options are

-c,--config <arg>            [required] Workload configuration file
   --clear <arg>             Clear all records in the database for this
                             benchmark
   --create <arg>            Initialize the database for this benchmark
   --execute <arg>           Execute the benchmark workload
-h,--help                    Print this help
   --histograms              Print txn histograms
   --load <arg>              Load data using the benchmark's data loader
-o,--output <arg>            Output file (default System.out)
   --runscript <arg>         Run an SQL script
-s,--sample <arg>            Sampling window
-v,--verbose                 Display Messages

Example

The following commands initialize a tpcc database (--create=true --load=true) and a then run a workload (--execute=true) as described in config/workload_all.xml file. The results (latency, throughput) are summarized and written to stdout:

./tpccbenchmark -c config/workload_all.xml --create=true
./tpccbenchmark -c config/workload_all.xml --load=true
./tpccbenchmark -c config/workload_all.xml --execute=true

About

Repo to run TPCC benchmarks against YugabyteDB

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 47.3%
  • Python 29.6%
  • PLpgSQL 20.1%
  • Shell 1.9%
  • Other 1.1%