cockroachdb / cockroachdb/cockroach
kv: ExportRequest should produce SSTs at an acceptable version
- Dominant language
- Go
- Stars
- 32.5k
- Forks
- 4.1k
- PR merge metrics
- PR metrics pending
Description
Currently an export request uses the system cluster version to determine the sstable format version for the data. Given that a tenant can run at an earlier cluster version, this means that export has to be conservative and always emit at the minimum supported version (see #152723).
It would be ideal if `ExportRequest` contained the desired sstable format version; this would allow us to emit at the most recent version in most cases. Alternatively, we could also use the requestor's binary version if if we annotate the RPCs with that (though this implicit mechanism is more subtle to follow).
Jira issue: CRDB-54327
Contributor guide
Research direction
Start by tracing the ExportRequest flow and how it currently selects the SSTable format from the system cluster version. Read the minimum-supported-version context in #152723 and compare the proposed request field with the alternative of using the requestor's binary version. Done means exports can use the newest acceptable format for a tenant without violating its cluster-version compatibility.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- databases, distributed-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100