Comment 17 for bug 941889

Revision history for this message
Vladislav Vaintroub (wlad-montyprogram) wrote :

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