-
Notifications
You must be signed in to change notification settings - Fork 451
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
colblk: implement synthetic prefix and suffix #3997
colblk: implement synthetic prefix and suffix #3997
Conversation
Forgot to add some benchmarks and compare the no-transform case before/after, will do that soon. |
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 9 files at r2, all commit messages.
Reviewable status: 2 of 9 files reviewed, 2 unresolved discussions (waiting on @RaduBerinde)
sstable/colblk/data_block.go
line 947 at r2 (raw file):
!i.transforms.HideObsoletePoints && !i.transforms.SyntheticPrefix.IsSet() && !i.transforms.SyntheticSuffix.IsSet()
should we put this on a AnySet()
Transforms
method or the like?
sstable/colblk/data_block.go
line 977 at r2 (raw file):
} // seekGEInternal has is a wrapper around keySeeker.SeekGE which takes into
nit: s/has is/is/
46ab43c
to
0f8f346
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.
TFTR!
Reviewable status: 2 of 9 files reviewed, 1 unresolved discussion (waiting on @jbowens)
sstable/colblk/data_block.go
line 947 at r2 (raw file):
Previously, jbowens (Jackson Owens) wrote…
should we put this on a
AnySet()
Transforms
method or the like?
Good point, done.
Updated benchmark as well.
Transform benchmark shows very little difference, which is pretty cool!
|
eb449d2
to
6744ef2
Compare
Merged with the recent |
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 3 of 9 files at r2, 2 of 3 files at r3, 6 of 6 files at r5, all commit messages.
Reviewable status: all files reviewed, 3 unresolved discussions (waiting on @RaduBerinde)
sstable/colblk/data_block.go
line 868 at r5 (raw file):
i.split = split i.getLazyValuer = getLazyValuer i.keySeeker = i.keySchema.NewKeySeeker()
Hrm, I didn't think we could do this in InitOnce because we're making the assumption that we won't Init
/InitHandle
after a call Close
(which is then we release the seeker back to the pool).
sstable/colblk/data_block.go
line 1026 at r5 (raw file):
if i.noTransforms { // Fast path. i.row, _ = i.keySeeker.SeekGE(key, i.row, searchDir)
code coverage is saying the fast path isn't covered by our tests; is that right? I thought our datadriven unit tests covered the no transform SeekGE case?
sstable/colblk/data_block.go
line 1123 at r5 (raw file):
// Inline decodeKey(), adding obsolete points logic. if i.noTransforms { // Fast path.
ditto re: no-transform code coverage
Previously, jbowens (Jackson Owens) wrote…
Wow, great catch!! I missed a few ! in NoTransforms() |
6744ef2
to
65c8e8d
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.
Reviewable status: 9 of 12 files reviewed, 3 unresolved discussions (waiting on @jbowens)
sstable/colblk/data_block.go
line 868 at r5 (raw file):
Previously, jbowens (Jackson Owens) wrote…
Hrm, I didn't think we could do this in InitOnce because we're making the assumption that we won't
Init
/InitHandle
after a callClose
(which is then we release the seeker back to the pool).
Reverted this part.
sstable/colblk/data_block.go
line 1123 at r5 (raw file):
Previously, jbowens (Jackson Owens) wrote…
ditto re: no-transform code coverage
Fixed.
`DataBlockIter` now takes into account the synthetic prefix and suffix transforms.
65c8e8d
to
5924e60
Compare
First commit is #3996
colblk: implement synthetic prefix and suffix
DataBlockIter
now takes into account the synthetic prefix and suffixtransforms.