-
Notifications
You must be signed in to change notification settings - Fork 434
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
chore(pageserver): shrink aux keyspace to 0x60-0x7F #7502
Conversation
2820 tests run: 2700 passed, 0 failed, 120 skipped (full report)Flaky tests (3)Postgres 15Code coverage* (full report)
* collected from Rust tests only The comment gets automatically updated with the latest test results
bf7cb98 at 2024-04-26T16:19:50.579Z :recycle: |
7ac329e
to
41e20bf
Compare
41e20bf
to
50968a3
Compare
Signed-off-by: Alex Chi Z <chi@neon.tech>
50968a3
to
b1c3250
Compare
comments from @arpad-m -- if we can use the full u128 space in the future, metadata key now takes 75% of all prefixes, which does not seem reasonable. Well, then let's split metadata keys at 0x60 in this pull request, so that it takes 25% now, and if we refactor everything to u128, metadata keys will only take ~60% prefixes? Or let's see if I can finish the u128 refactor before next month so that we can revert the keyspace back to 0x80 before rolling out to the users. |
Signed-off-by: Alex Chi Z <chi@neon.tech>
0a9e880
to
bf7cb98
Compare
Problem
extracted from #7468, part of #7462.
In the page server, we use i128 (instead of u128) to do the integer representation of the key, which indicates that the highest bit of the key should not be 1. This constraints our keyspace to <= 0x7F.
Also fix the bug of
to_i128
that dropped the highest 4b. Now we keep 3b of them, dropping the sign bit.And on that, we shrink the metadata keyspace to 0x60-0x7F for now, and once we add support for u128, we can have a larger metadata keyspace.
Summary of changes
Checklist before requesting a review
Checklist before merging