Attached in a simple patch that de-virtualizes semijoin strategy picker classes.
It fixes the problem (tested on Windows)
- SELECT 1 test (10 users)
5.3, without fix read/write requests: 11739503 (39131.57 per sec.) read/write requests: 11787997 (39293.23 per sec.) read/write requests: 11776222 (39253.97 per sec.)
5.3, with fix read/write requests: 12887151 (42957.08 per sec.) read/write requests: 12876115 (42920.29 per sec.) read/write requests: 12925002 (43083.25 per sec.)
5.2 read/write requests: 13186290 (43954.19 per sec.) read/write requests: 13099010 (43663.26 per sec.) read/write requests: 13115124 (43716.98 per sec.)
Summary on SELECT 1: - The fix speeds up 5.3 on this test by 9.7% - 5.3 is stil a bit slower than 5.2 (approx 1%)
Another test : OLTP_RO (64 users, sysbench 0.4)
5.3: read/write requests: 4869802 (27051.41 per sec.) read/write requests: 4795000 (26635.60 per sec.) read/write requests: 4948034 (27485.88 per sec.)
5.3-fix read/write requests: 5354006 (29741.23 per sec.) read/write requests: 5327574 (29593.89 per sec.) read/write requests: 5477906 (30429.07 per sec.)
Summary on OLTP-RO: Fix makes 5.3 ~ 10.6% faster
Attached in a simple patch that de-virtualizes semijoin strategy picker classes.
It fixes the problem (tested on Windows)
- SELECT 1 test (10 users)
5.3, without fix
read/write requests: 11739503 (39131.57 per sec.)
read/write requests: 11787997 (39293.23 per sec.)
read/write requests: 11776222 (39253.97 per sec.)
5.3, with fix
read/write requests: 12887151 (42957.08 per sec.)
read/write requests: 12876115 (42920.29 per sec.)
read/write requests: 12925002 (43083.25 per sec.)
5.2
read/write requests: 13186290 (43954.19 per sec.)
read/write requests: 13099010 (43663.26 per sec.)
read/write requests: 13115124 (43716.98 per sec.)
Summary on SELECT 1:
- The fix speeds up 5.3 on this test by 9.7%
- 5.3 is stil a bit slower than 5.2 (approx 1%)
Another test : OLTP_RO (64 users, sysbench 0.4)
5.3:
read/write requests: 4869802 (27051.41 per sec.)
read/write requests: 4795000 (26635.60 per sec.)
read/write requests: 4948034 (27485.88 per sec.)
5.3-fix
read/write requests: 5354006 (29741.23 per sec.)
read/write requests: 5327574 (29593.89 per sec.)
read/write requests: 5477906 (30429.07 per sec.)
Summary on OLTP-RO:
Fix makes 5.3 ~ 10.6% faster