Bug #100132 Using optimal memory-barrier (in form of acquire/release) for event-mutex
Submitted: 7 Jul 2020 5:13 Modified: 22 Sep 2020 3:47
Reporter: Krunal Bauskar Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S5 (Performance)
Version:8.0.20 OS:Any
Assigned to: CPU Architecture:ARM
Tags: event-mutex, memory-barrier, performance

File: Maximum allowed size is 3MB.
Description:
Privacy:

If the data you need to attach is more than 3MB, you should create a compressed archive of the data and a README file that describes the data with a filename that includes the bug number (recommended filename: mysql-bug-data-100132.zip) and upload one to sftp.oracle.com. A free Oracle Web (SSO) account (the one you use to login bugs.mysql.com) and a client that supports SFTP are required in order to access the SFTP server.

To upload the file to sftp.oracle.com:

  1. Open an SFTP client and connect to sftp.oracle.com. Specify port 2021 and remote directory /support/incoming/.
  2. Log in with your newly created Oracle Web account (email address) and password.
  3. Upload the archive to /support/incoming.
  4. Once you have uploaded the file, add a comment to this bug to notify us about it.
Example: sftp -oPort=2021 -oUser=email sftp.oracle.com:/support/incoming

Usage Notes: This directory is unlistable, which means that once you have uploaded your file, you will not be able to see it. A file cannot be uploaded more than once with the same filename. The filename must be changed before attempting to upload the file again. The filename should always start with mysql-bug- prefix. Files are retained on the SFTP server for 7 days and then permanently removed.

[7 Jul 2020 5:14] Krunal Bauskar
arm benchmark

Attachment: arm_eventmutex.png (image/png, text), 70.49 KiB.

[7 Jul 2020 5:14] Krunal Bauskar
x86 benchmark

Attachment: x86_eventmutex.png (image/png, text), 70.14 KiB.

[13 Jul 2020 14:37] Jakub Lopuszanski
Proposal of a patch which provides provable correctness in C++14-compliant environment and performance on ARM

Attachment: seqcst_mutex.patch (application/octet-stream, text), 7.05 KiB.

[22 Jul 2020 9:19] Krunal Bauskar
updated patch

Attachment: patch.bug100132 (application/octet-stream, text), 2.17 KiB.

[23 Jul 2020 12:51] Jakub Lopuszanski
proposal based on m_waiters.exchange(..) used consistently

Attachment: rb.2 (application/octet-stream, text), 6.18 KiB.

[27 Jul 2020 7:03] Krunal Bauskar
benchmark

Attachment: zipfian-x86.png (image/png, text), 129.72 KiB.

[27 Jul 2020 7:03] Krunal Bauskar
benchmark

Attachment: uniform-x86.png (image/png, text), 128.43 KiB.

[27 Jul 2020 7:04] Krunal Bauskar
benchmark

Attachment: zipfian-arm.png (image/png, text), 129.38 KiB.

[27 Jul 2020 7:04] Krunal Bauskar
benchmark

Attachment: uniform-arm.png (image/png, text), 130.82 KiB.

[1 Aug 2020 7:09] Krunal Bauskar
exchange arm benchmark

Attachment: arm-exchange.png (image/png, text), 98.76 KiB.

[1 Aug 2020 7:10] Krunal Bauskar
exchange x86 benchmark

Attachment: x86-exchange.png (image/png, text), 101.55 KiB.

[4 Aug 2020 8:11] Jakub Lopuszanski
Data for Proposal-1 and Proposal-2 ARM zipfian

Attachment: summary-arm-zipfian.png (image/png, text), 12.40 KiB.