cockroachdb / cockroachdb/cockroach

crosscluster/physical: reconsider UX around adopting PCR reader tenant personas

Open
#150,519 1 comment 0 reactions 1 assignee Claimed by @msbutler View on GitHub
A-disaster-recovery C-enhancement P-0 T-disaster-recovery
Dominant language
Go
Stars
32.5k
Forks
4.1k
PR merge metrics
PR metrics pending

Description

To run PCR, there are **4** (yeesh) high level user personas:
- PCR Job manager -> connects to destination system tenant, with MANAGEVIRTUALCLUSTER and REPLCIATIONDEST privs
- Source Side Job Manager - > connects to source system tenant, with MANAGEVIRTUALCLUSTER and REPLICACTIONSOURCE privs.
- Standby Workload Reader -> connects to reader tenant, runs the read only workload. Queries are read only, and run at a historical timestamp.
- Standby Workload Manager -> connect to reader tenant: configures cluster settings, can do other stuff with system tables.

While we have a clear UX for the first 2 personas, based on adopting system privileges, we don't for the ladder two. Currently, if a user connects to the reader tenant, they default into the Reader persona. To manage the workload (e.g. set a cluster setting in the reader keyspace), the user must set the undocumented `bypass_pcr_reader_catalog_aost` session variable to true.

We should resolve the following open questions:

- Is setting this strange session var the right UX that a user should take to set cluster settings, pause/resume jobs on the reader tenant?
- Since the workload manager can write and can read at non-historical timestamps, we should ensure that the manager is unable to query external data, right?
- Should a workload reader be able to run read queries on non external tables (e.g. system tables)? Those queries don't need to be historical, right?

Jira issue: CRDB-52744

Epic: [CRDB-52290](https://cockroachlabs.atlassian.net/browse/CRDB-52290)

Epic CRDB-52290

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.