oltpbenchmark / oltpbench

Database Benchmarking Framework
http://oltpbenchmark.com/
Other
400 stars 267 forks source link

Transaction Latency Files (TPC-C) #324

Closed lucasalisboa closed 4 years ago

lucasalisboa commented 4 years ago

I am participating in a research project using OLTP Benchmark Framework, focusing on VoltDB and MemSQL. We are analyzing the values of the TPC-C tests. In the generated .csv file, there are about 6 columns, the first two being the types of transactions carried out. However, the other four are a little confused. image The start time is the time when the transaction starts, but we don't understand how so many transactions start at the same time. Regarding latency, we add and divide them all, but the value does not correspond to the average latency in the .summary file. Worker ID and phase ID, we do not understand what that means.

AlanDZQ commented 4 years ago

Sorry for the late reply. I just received the GitHub notification. Yes, the result file definitely looks weird. And I've tested TPC-C with my code, everything's well. May I see your tpcc config file?

For your reference, I attach my result file here: https://drive.google.com/file/d/1qryNH9NYPEfLkuKLi1seBP9XI8ZYvQBg/view?usp=sharing I've run it on my new version of OLTP-Bench, so the format should be a little different.

lucasalisboa commented 4 years ago

Good night. I try to look your link, but is blocked, like this: image Can you give me acess, please? About the config file: image

AlanDZQ commented 4 years ago

Sorry about that. Please try this https://drive.google.com/file/d/1qryNH9NYPEfLkuKLi1seBP9XI8ZYvQBg/view?usp=sharing

AlanDZQ commented 4 years ago

Hi, I've run the same config as yours and test it with the current version of OLTPBench with MySQL driver, and here is the result: https://drive.google.com/file/d/1O2if7G14Fr9Q-oPYYDUnpjHYzzyXKjCH/view?usp=sharing

It looks still good for me. Have your check every detailed number in column start time? Like 1591752665.60654 is different to 1591752665.93239.

lucasalisboa commented 4 years ago

Good night. Sorry for the late reply. I check here and they are the same number: image Other thing that is confused to me is what means the "worker id" and the "phase id". Can you can explain, please?

AlanDZQ commented 4 years ago

Yes, then it's not right. Have you been trying to reproduce the problem? Since I've tried three times with your config (only difference is I'm using mysql), there's nothing like yours. Have you tried to change a database type? Does that work?

andreazarola commented 4 years ago

Hi @lucasalisboa, how did you manage support to voltdb? I'm having the SQLFeatureNotSupportedException problem.

MaikThiele commented 4 years ago

I have the same issue as @lucasalisboa. All transactions are started at the same time or within few nanoseconds. I tried it with Aurora, Postgres 12.2 and sqlite. The same problem for all of them.

MaikThiele commented 4 years ago

I found the problem and solved it: The problem happens in the Result.java where the CSV is generated (writeAllCSVAbsoluteTiming). String.format("%10.6f", startUs - offset) returns a decimal separated by a comma instead of a dot resulting in a tuple with 7 values instead of 6. Change it to String.format(Locale.ENGLISH, "%10.6f", startUs - offset) or use ";" as a separator in out.println(StringUtil.join(";", row)).

MaikThiele commented 4 years ago

@lucasalisboa: That is the reason for the additional column G in you screenshot.

lucasalisboa commented 4 years ago

Thanks @MaikThiele