[MDEV-4309] DBT-3 Q1 benchmark: Benchmark + profile a patch Created: 2013-03-20 Updated: 2014-02-28 Resolved: 2014-02-26 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | None |
| Fix Version/s: | 10.0.9 |
| Type: | Task | Priority: | Major |
| Reporter: | Sergei Petrunia | Assignee: | Oleksandr Byelkin |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | benchmarking, dbt-3 | ||
| Attachments: |
|
||||||||
| Issue Links: |
|
||||||||
| Description |
|
I need a benchmark and a profiling run: mariadb-5.5-latest vs mariadb-5.5-latest with attached patch. DBT-3, MyISAM. |
| Comments |
| Comment by Sergei Petrunia [ 2013-03-25 ] |
|
Benchmark results from Axel, with a few plots added. |
| Comment by Sergei Petrunia [ 2013-03-25 ] |
|
Looking at the data, one sees that only the original Q1 benefits from the patch. For other queries, the difference between medians is too small when compared to stddev. Value distribution charts (see attached file) also do not show a difference. |
| Comment by Sergei Petrunia [ 2013-03-25 ] |
|
The reason for this is: field_conv() is only executed by the query that uses a GROUP BY. Queries without group by do not run field_conv(), and so do not benefit from the patch. Stacktrace of where we hit field_conv: Breakpoint 1, field_conv (to=0xd49d618, from=0xd4978a8) at /home/psergey/dev2/5.5/sql/field_conv.cc:829 |
| Comment by Sergei Petrunia [ 2013-03-25 ] |
|
There are two calls to field_conv() made for each row, because GROUP BY list has two elements: group by l_returnflag, l_linestatus The fields have the same types (both are CHAR(1) nullable), hence field_conv() calls proceed on the same route. Before the patch, Breakpoint 4, field_conv (to=0xd49d610, from=0xd4978a0) at /home/psergey/dev2/5.5/sql/field_conv.cc:829 After the patch: We've managed to remove 5 out of 14 calls. There is a potential to remove another 9 calls, if we switch field_conv() from dynamic decision-making to static one. |
| Comment by Oleksandr Byelkin [ 2013-03-26 ] |
|
Next step in attempt to make tmp table grouping faster. |
| Comment by Sergei Petrunia [ 2013-03-26 ] |
|
Benchmark results for 201303260107_sanja_copy_calls_patch.diff |
| Comment by Oleksandr Byelkin [ 2013-03-27 ] |
|
Polished patch. |
| Comment by Sergei Petrunia [ 2014-01-29 ] |
|
Review feedback provided for patch #2 over email. |
| Comment by Sergei Petrunia [ 2014-02-18 ] |
|
Data from my 'pylon' machine. DBT3 sf=1, compile-pentium-max, Q1 as defined by Q1_virtfun_patch2-edited.ods. The patch is 201402181003_sanja_copy_calls_patch.diff. mariadb-5.5 vanilla - 4.81 sec (+/-0.02 sec) mariadb-10.0 vanilla - 5.30 (+/0 0.01 sec) That is, there is speedup on 5.5 but not on 10.0, for some reason. |