cockroachdb / cockroachdb/cockroach

kv: ExportRequest should produce SSTs at an acceptable version

Open
#153,283 0 comments 0 reactions 0 assignees View on GitHub
A-kv C-enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.