Bug #91759 Simplified away ReadView::complete()
Submitted: 23 Jul 2018 6:43 Modified: 26 Jul 2018 11:20
Reporter: Sandeep Sethia (OCA) Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S5 (Performance)
Version:5.7 OS:CentOS
Assigned to: CPU Architecture:ARM
Tags: Contribution, innodb

[23 Jul 2018 6:43] Sandeep Sethia
Description:
It was supposed to be called out of mutex, but nevertheless was called under mutex for normal threads adding one extra condtion in critical section.

How to repeat:
Code review and tested the patch using sysbench oltp workload.
[23 Jul 2018 6:44] Sandeep Sethia
Simplied read view :complete()

(*) I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it.

Contribution: simpifiedreadview.patch (application/octet-stream, text), 2.30 KiB.

[23 Jul 2018 6:44] Sandeep Sethia
Simplied read view :complete()

(*) I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it.

Contribution: simpifiedreadview.patch (application/octet-stream, text), 2.30 KiB.

[23 Jul 2018 7:20] MySQL Verification Team
Hello Sandeep Sethia,

Thank you for the report and contribution.

Thanks,
Umesh
[24 Jul 2018 11:41] Bin Su
Posted by developer:
 
This also exists in 5.7 code. But not sure if it's worth fixing it in 5.7, since no performance gain number for it.
[24 Jul 2018 14:11] Bin Su
Posted by developer:
 
Since this also exists in 5.7, change the reported version to 5.7
[25 Jul 2018 6:03] Sandeep Sethia
Changed to 5.7 . This is more to do with cleanup of code than performance.
[26 Jul 2018 11:20] Daniel Price
Posted by developer:
 
Fixed as of the upcoming 8.0.13 release, and here's the changelog entry:

A conditional check was removed by removing the ReadView::complete()
function and splitting its work among other functions. This change helps
optimize performance on ARM 64-bit.