-
Notifications
You must be signed in to change notification settings - Fork 514
db: disable writing to value blocks if DisableSeparationBySuffix is…
#5532
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
db: disable writing to value blocks if DisableSeparationBySuffix is…
#5532
Conversation
ed1466e to
9f5e0a0
Compare
8859026 to
10c0e65
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: 0 of 7 files reviewed, 3 unresolved discussions
options.go line 1312 at r1 (raw file):
// KVs, overriding global policies. Values can be configured to be stored in-place, // in value blocks, or in blob files. type ValueStoragePolicyAdjustment struct {
I think we can simplify this to just a set of fields.
type ValueStoragePolicyAdjustment struct {
DisableBlobSeparation bool
OverrideBlobSeparationMinimumSize int
DisableSeparationBySuffix bool
}
Zero value means no adjustment.
options.go line 1320 at r1 (raw file):
// keys (where the smallest suffix is the latest version), but should be // disabled for keys where the suffix does not correspond to a version. DisableSeparationBySuffix bool
It would be good to document the of cases of where values can go, with or without this flag, for the three possibilities:
- most recent suffix with value >= MinimumSize
- older suffix with value >= MinimumSize
- older suffix with value < MinimumSize
compaction.go line 3491 at r1 (raw file):
// aggressive value separation policy for this output. vSep.SetNextOutputConfig(valsep.ValueSeparationOutputConfig{ MinimumSize: spanPolicy.ValueStoragePolicy.MinimumSize,
[nit] maybe we should rename MinimumSizeForBlob or similar
10c0e65 to
e6f9e82
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: 0 of 8 files reviewed, 1 unresolved discussion (waiting on @RaduBerinde)
options.go line 1312 at r1 (raw file):
Previously, RaduBerinde wrote…
I think we can simplify this to just a set of fields.
type ValueStoragePolicyAdjustment struct { DisableBlobSeparation bool OverrideBlobSeparationMinimumSize int DisableSeparationBySuffix bool }Zero value means no adjustment.
Done.
options.go line 1320 at r1 (raw file):
Previously, RaduBerinde wrote…
It would be good to document the of cases of where values can go, with or without this flag, for the three possibilities:
- most recent suffix with value >= MinimumSize
- older suffix with value >= MinimumSize
- older suffix with value < MinimumSize
Done.
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: 0 of 8 files reviewed, 2 unresolved discussions (waiting on @xinhaoz)
options.go line 1330 at r2 (raw file):
// - If blob separation is disabled, the value will be written to a value // block within the sstable. // - Otherwise, the KV will be subject to regular value separation rules.
[nit] There is no "otherwise" (separation is either enabled or disabled)
… true Make sure this field, which has been moved from SpanPolicy to ValueStoragePolicy, is read for the DisableValueBlocks option in the sst writer.
e6f9e82 to
26a4f68
Compare
|
TFTR! |
… true
Make sure this field, which has been moved from SpanPolicy to ValueStoragePolicy, is read for the DisableValueBlocks option in the sst writer.