apple / foundationdb

FoundationDB - the open source, distributed, transactional key-value store
https://apple.github.io/foundationdb/
Apache License 2.0
14.38k stars 1.3k forks source link

How to run build-in TPC-C Test correctly #7032

Closed xiaodongzhang97 closed 2 years ago

xiaodongzhang97 commented 2 years ago

I try to run TPC-C benchmark with the following configuration in a cluster with three machines (8 test process total) .

$  fdbserver -f TPCC.txt -r multitest

The text of TPCC.txt is shown as following

testTitle=PopulateTPCCTest
testName=PopulateTPCC
clientsUsed=2
actorsPerClient=1
warehousesPerActor=80
timeout=3600000
clearAfterTest=false
runConsistencyCheck=false

testTitle=TPCCTest
testName=TPCC
warehousesPerClient=4
testDuration=3600
warmupTime=300
clientsUsed=40
expectedTransactionsPerMinute=1000
timeout=14400

The I got all testers failed in the second test. I have no idea why this happen. Can anyone tell me how should I run TPCC benchmark correctly? Thanks very much!

sfc-gh-tclinkenbeard commented 2 years ago

This test has been disabled for the last couple years, our new tool for benchmarking is primarily the Mako workload: https://github.com/apple/foundationdb/blob/main/bindings/c/test/mako/mako.rst. The linked documentation shows how to run mako as a standalone program, but it can also be run as a workload. The workload can be run with the following command:

$ fdbserver -f <source_dir>/tests/Mako.txt -r multitest

If the goal of using TPC-C is to compare FoundationDB with other databases, the built-in workload is probably not in a state where it can reliably do that at the moment.

xiaodongzhang97 commented 2 years ago

Thanks for your reply. By the way, currently TPC-C workload can not work because a variable is not initialized correctly, see pr(#7034).