Skip to content
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: support range keys in SSTWriter and sstIterator #82586

Closed
erikgrinaker opened this issue Jun 8, 2022 · 1 comment · Fixed by #82799
Closed

storage: support range keys in SSTWriter and sstIterator #82586

erikgrinaker opened this issue Jun 8, 2022 · 1 comment · Fixed by #82799
Assignees
Labels
A-kv-replication Relating to Raft, consensus, and coordination. A-storage Relating to our storage engine (Pebble) on-disk storage. C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception)

Comments

@erikgrinaker
Copy link
Contributor

erikgrinaker commented Jun 8, 2022

We need to handle range keys in SSTs, e.g. for backup/restore and Raft snapshots. In order to do this, we need support for range keys in SSTWriter and sstIterator. This involves implementing the range key methods from the Writer and SimpleMVCCIterator interfaces such that they comply with the interface, and adding tests (iterator tests via TestMVCCHistories).

// ExperimentalPutMVCCRangeKey implements the Writer interface.
func (fw *SSTWriter) ExperimentalPutMVCCRangeKey(MVCCRangeKey, MVCCValue) error {
panic("not implemented")
}
// ExperimentalClearMVCCRangeKey implements the Writer interface.
func (fw *SSTWriter) ExperimentalClearMVCCRangeKey(MVCCRangeKey) error {
panic("not implemented")
}
// ExperimentalClearAllMVCCRangeKeys implements the Writer interface.
func (fw *SSTWriter) ExperimentalClearAllMVCCRangeKeys(roachpb.Key, roachpb.Key) error {
panic("not implemented")
}

// HasPointAndRange implements SimpleMVCCIterator.
func (r *sstIterator) HasPointAndRange() (bool, bool) {
panic("not implemented")
}
// RangeBounds implements SimpleMVCCIterator.
func (r *sstIterator) RangeBounds() roachpb.Span {
panic("not implemented")
}
// RangeKeys implements SimpleMVCCIterator.
func (r *sstIterator) RangeKeys() []MVCCRangeKeyValue {
panic("not implemented")
}

Jira issue: CRDB-16532

Epic CRDB-2624

@erikgrinaker erikgrinaker added C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) A-storage Relating to our storage engine (Pebble) on-disk storage. T-kv-replication labels Jun 8, 2022
@blathers-crl
Copy link

blathers-crl bot commented Jun 8, 2022

cc @cockroachdb/replication

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-kv-replication Relating to Raft, consensus, and coordination. A-storage Relating to our storage engine (Pebble) on-disk storage. C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants