-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Conversation
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.
Based on implementation: https://github.com/antonblanchard/crc32-vpmsum
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. |
Hi, thank you for your contribution. Your code has been assigned to an internal queue. Please follow |
Made one small error - fix : https://github.com/linux-on-ibm-power/mysql-server/commit/397fbc5e8eb65c20a24ed6fd8dede85c24fc76cd |
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
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
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.