Skip to content

bug 79747: crc32 optimizations #68

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 12 commits into from
Closed

bug 79747: crc32 optimizations #68

wants to merge 12 commits into from

Conversation

grooverdan
Copy link

previously I failed to notice the difference between crc32c and crc32(-ieee) optimizations.

In these patches I move the crc32 implementations to global mysys, add Power8 optimized crc32 and crc32c implementations.

The rest of the patches change all the places in the code to use optimized crc32 functions.

While I haven't included an implementation of an optimized CRC32-(IEEE) for intel, there is the following links that would enable this:

Note the documentation mentions patents on CRC32 folding (which I haven't done).

Hopefully the commit by commit patches here makes such a large set of changes followable to review.

grooverdan and others added 12 commits March 21, 2016 16:28
During the move use system type definations rather than innobase ones.
Current ut_crc32 function represent the CRC32C algorithm so the
rename reflects this.

This change is in preparation for addition of CRC32 functions.

The slice8 table is also abstracted in preparation for a CRC32
table.

Software implementation also extended to allow for input
CRC32 value to which the function will add to.
Also call crc32 init in independent programs like:
* mysqlbinlog
* myisampack
* myisamchk
Also add extended ut_crc32_ex so crc32 can be calculted in blocks
with a partially calculated crc32.
@mysql-oca-bot
Copy link

Hi, thank you for your contribution. Please confirm this code is submitted under the terms of the OCA (Oracle's Contribution Agreement) you have previously signed by cutting and pasting the following text as a comment:
"I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it."
Thanks

@grooverdan
Copy link
Author

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

@mysql-oca-bot
Copy link

Hi, thank you for your contribution. Your code has been assigned to an internal queue. Please follow
bug http://bugs.mysql.com/bug.php?id=79747 for updates.
Thanks

@grooverdan grooverdan changed the title bug 79747: crc32 optmizations bug 79747: crc32 optimizations Apr 29, 2016
@grooverdan
Copy link
Author

gunnarku pushed a commit to facebook/mysql-8.0 that referenced this pull request Jul 21, 2017
Summary:
This diff adds a new session variable rocksdb_skip_fill_cache (default
false, and enabled at mysqldump), and set ReadOptions.fill_cache = false if turned on.
This avoids mysqldump filling block cache.

Test Plan: new test case mysqldump2

Reviewers: maykov, spetrunia, hermanlee4

Reviewed By: hermanlee4

Differential Revision: https://reviews.facebook.net/D39195
gunnarku pushed a commit to facebook/mysql-8.0 that referenced this pull request Jul 25, 2017
Summary:
This diff adds a new session variable rocksdb_skip_fill_cache (default
false, and enabled at mysqldump), and set ReadOptions.fill_cache = false if turned on.
This avoids mysqldump filling block cache.

Test Plan: new test case mysqldump2

Reviewers: maykov, spetrunia, hermanlee4

Reviewed By: hermanlee4

Differential Revision: https://reviews.facebook.net/D39195
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants