apple / apple/foundationdb

Convert all uses of hashlittle2 to crc32c

Open
#1,358 14 comments 0 reactions 0 assignees View on GitHub
performance
Dominant language
C++
Stars
16.7k
Forks
1.6k
Avg merge
1d 20h
Merged PRs (30d)
126

Description

Historically, FDB used `hashlittle2` for all hashing needs, and later, a implementation of `crc32c` was introduced as it can take advantage of the hardware crc32c support on newer processors.

I've recently done the work to convert the disk queue to use crc32c instead of hashlittle2, but it looks like there's still a couple uses of hashlittle2 left in the storage server, simulator, and redwood that could be converted for a 5x-6x speedup.

Contributor guide

Open the contributing guide

Research direction

Search the storage server, simulator, and Redwood for the remaining uses of hashlittle2, and review the disk queue's existing conversion to crc32c as a reference. Confirm that each hashing use can be converted consistently and that the affected components retain their behavior while gaining the expected performance improvement.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
databases, distributed-systems, performance
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.