yugabyte / tpcc

Repo to run TPCC benchmarks against YugabyteDB
Other
24 stars 21 forks source link

Modify tpcc procedures based on single-request update returning #117

Closed yifanguan closed 3 years ago

yifanguan commented 3 years ago

This diff modifies tpcc procedures: Delivery, NewOrder, and Payment to make the use of single-request UPDATE RETURNING.

robertsami commented 3 years ago

@yifanguan can you provide some results to motivate this change? e.g. tpcc execute results before/after?

yifanguan commented 3 years ago

@robertsami I did a 3-node WH2700 TPCC experiment runs with the instance type: c5d.4xl on portal based on my changes.

TPCC execute results before my changes: ================RESULTS================ TPM-C | 33645.13 Efficiency | 96.90% Throughput (req/s) | 1224.55

TPCC execute results after my changes: ================RESULTS================ TPM-C | 33915.47 Efficiency | 97.68% Throughput (req/s) | 1244.84

m-iancu commented 3 years ago

@yifanguan Can you also share your count for the (average) number of DocDB RPCs for the relevant procedures?

yifanguan commented 3 years ago

@yifanguan Can you also share your count for the (average) number of DocDB RPCs for the relevant procedures?

On my local machine with 10 WH, I ran 100% Payment, 100% NewOrder, 100% Delivery for 300s, respectively.

For the Payment procedure, With my change, 6710 PGSQL operations / 958 committed transactions = 7.00417536534 DocDB RPC. Totally, 1983 update returning statements for 100% payment transaction in 300s. Without my change, 8520 PGSQL operations / 944 committed transactions = 9.02542372881 DocDB RPC. Totally, 1979 related update statements for 100% payment transactions in 300s.

For the NewOrder procedure, With my change, 9157 PGSQL operations / 505 committed transactions = 18.132673267 DocDB RPC. Totally, 437 related update statements for 100% NewOrder transaction in 300s Without my change, 8174 PGSQL operations / 450 committed transactions = 18.16444444 DocDB RPC. Totally, 452 related update statements for 100% NewOrder transactions in 300s.

For the Delivery procedure, With my change, 22685 PGSQL operations / 3815 committed transactions = 5.94626474443 DocDB RPC. Totally, 3738 related update statements for 100% Delivery transaction in 300s Without my change, 16749 PGSQL operations / 2387 committed transactions = 7.01675743611 DocDB RPC. Totally, 2232 related update statements for 100% Delivery transactions in 300s.