Skip to content
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

Support for xxHash checksums #78

Closed
wants to merge 1 commit into from
Closed

Conversation

alberts
Copy link
Contributor

@alberts alberts commented Feb 9, 2014

This is the start of a pull request to motivate making the hash function configurable. CRC32C is currently "hard-coded" a bit in the library, so to do this will take a bit of refactoring that might be easier for one of the FB team to do?

Anyway, with level style compaction and when not using compression or using compression only at higher levels, CRC32C is the highest or second highest function (after memcpy) in perf top.

One step to reduce this is to make abd70ec configurable again, but ideally one wants some kind of hash checksum.

Presenting xxHash from https://code.google.com/p/xxhash/

$ ./db_bench -benchmarks crc32c,xxhash
CPU: 4 * Intel(R) Core(TM) i7-3540M CPU @ 3.00GHz
crc32c: 1.311 micros/op 762735 ops/sec; 2979.4 MB/s (4K per op)
xxhash: 0.601 micros/op 1664997 ops/sec; 6503.9 MB/s (4K per op)

@dhruba
Copy link
Contributor

dhruba commented Feb 10, 2014

great request, especially for an in-memory database.

we should start refactoring the rocksdb code to make checksum pluggable.

@igorcanadi
Copy link
Collaborator

Also, @alberts, can you please review this PR: #82 (not sure why I can't mention you there)

@alberts
Copy link
Contributor Author

alberts commented Feb 23, 2014

More complete code is in pull request #87.

@alberts alberts closed this Feb 23, 2014
mauricebarnum pushed a commit to mauricebarnum/rocksdb that referenced this pull request May 13, 2020
Move CloudLogController into CloudEnvOptions.
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