-
Notifications
You must be signed in to change notification settings - Fork 3.8k
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
storage: add benchmark for scanning MVCC garbage #85716
Conversation
e70f6ec
to
d79d231
Compare
@jbowens I expect #85576 will improve this significantly? See profile below for the I realized that if we can improve the scan performance here by a couple of orders of magnitude then MVCC range tombstones may provide a solution to outbox-style workloads. We currently struggle with these because of the amount of garbage we have to scan across. |
d79d231
to
254b4e9
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, it should help by ~two orders of magnitude. I'll try to get that in soon, but it might take a minute to figure out why the mvcc metamorphic tests are failing.
Reviewable status: complete! 0 of 0 LGTMs obtained (waiting on @erikgrinaker)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewable status: complete! 1 of 0 LGTMs obtained (waiting on @erikgrinaker)
TFTR! bors r=jbowens |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewed 2 of 2 files at r1, all commit messages.
Reviewable status: complete! 2 of 0 LGTMs obtained (waiting on @erikgrinaker)
bors r- Merge conflict with #85708. |
Canceled. |
This patch adds `BenchmarkMVCCScanGarbage`, which benchmarks MVCC scans across garbage. It builds a dataset similarly to `BenchmarkMVCCScan`, but writes point tombstones instead of values, and any MVCC range tombstones are written above the point keys rather than below them. ``` name time/op MVCCScanGarbage_Pebble/rows=50000/versions=1/numRangeKeys=0-24 8.37ms ± 0% MVCCScanGarbage_Pebble/rows=50000/versions=1/numRangeKeys=1-24 4.03ms ± 1% MVCCScanGarbage_Pebble/rows=50000/versions=1/numRangeKeys=100-24 60.4ms ± 7% MVCCScanGarbage_Pebble/rows=50000/versions=10/numRangeKeys=0-24 45.5ms ± 3% MVCCScanGarbage_Pebble/rows=50000/versions=10/numRangeKeys=1-24 22.9ms ± 0% MVCCScanGarbage_Pebble/rows=50000/versions=10/numRangeKeys=100-24 109ms ±13% ``` Release note: None
254b4e9
to
cf05775
Compare
bors r=jbowens,nicktrav |
Build succeeded: |
This patch adds
BenchmarkMVCCScanGarbage
, which benchmarks MVCC scansacross garbage. It builds a dataset similarly to
BenchmarkMVCCScan
,but writes point tombstones instead of values, and any MVCC range
tombstones are written above the point keys rather than below them.
Resolves #84383.
Release note: None