-
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 range keys and mvccstats to gc bench #87261
storage: add range keys and mvccstats to gc bench #87261
Conversation
208f9ac
to
00f4bdd
Compare
00f4bdd
to
7f91582
Compare
for _, rangeTombstones := range numRangeTombstones { | ||
b.Run(fmt.Sprintf("numRangeTs=%d", rangeTombstones), func(b *testing.B) { | ||
for _, stats := range updateStats { | ||
b.Run(fmt.Sprintf("updateStats=%t", stats), func(b *testing.B) { |
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.
Does the false
variant here have any real value, since we'll always enable stats during real GC?
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.
It is helpful when comparing to previous releases mostly. Maybe we should remove unhelpful benchmarks later.
Maybe we should backport benchmarks like that to make life easier?
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.
No strong opinion either way. It's fine to keep it in as well.
@@ -63,6 +63,8 @@ func BenchmarkMVCCGarbageCollect(b *testing.B) { | |||
{2, []int{1}}, | |||
{1024, []int{1, 16, 32, 512, 1015, 1023}}, | |||
} | |||
numRangeTombstones := []int{0, 1} |
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.
Would be nice to have a variant with 100 random range tombstones too, like the other benchmarks, but this is fine for now.
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.
That requires reverting key by key to ts by ts insertion. I did this change when experimenting with batch performance, but I'd rather add it separately.
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.
Created #87417
Previously gc benchmarking code didn't include neither range key tombstones, nor mvcc stats calculations. This is not realistic as production always uses stats and it is a non-negligible part of the operation time. This commit adds option to enable stats calculation during benchmarking as well as adding underlying range key tombstone to include everything. Release justification: increasing bench coverage, non production. Release note: None
7f91582
to
ab4b121
Compare
TFTR bors r+ |
Build failed (retrying...): |
Build succeeded: |
Previously gc benchmarking code didn't include neither range key
tombstones, nor mvcc stats calculations.
This is not realistic as production always uses stats and it is
a non-negligible part of the operation time.
This commit adds option to enable stats calculation during
benchmarking as well as adding underlying range key tombstone
to include everything.
Release justification: increasing bench coverage, non production.
Release note: None