Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.5, 10.6, 10.11, 11.4
Description
On 64-bit CPU architectures, the default InnoDB data type ulint, which is an alias of size_t is 64 bits wide.
The function ut_fold_ull() is converting a 64-bit integer to ulint. It can be simplified on 32-bit systems, and we could avoid the extra instructions altogether on 64-bit systems and just use the 64-bit index or table identifiers as is.
The function ut_hash_ulint() seems to be an unnecessary obfuscation. Computing an exclusive OR with a constant before performing a modulus operation does not seem to affect the entropy at all.
Attachments
Issue Links
- relates to
-
MDEV-35049 fix innodb-adaptive-hash-index scalability with multiple threads
- Stalled
-
MDEV-35190 HASH_SEARCH() is duplicating effort before HASH_INSERT() or HASH_DELETE()
- Closed