This is a tracking issue for the work that will be required to support protected timestamps in a multi-tenant mode. This is a very high level breakdown of tasks, the understanding of which might evolve as we get to coding them.
RFC #74685
Client side:
KV side
Stability followups (requirements):
Stability followups (nice to have):
Dropped approach for RPCS:
Epic: CRDB-10306
Jira issue: CRDB-11712
This is a tracking issue for the work that will be required to support protected timestamps in a multi-tenant mode. This is a very high level breakdown of tasks, the understanding of which might evolve as we get to coding them.
RFC #74685
Client side:
ptpb.Recordto reflect that we will be protecting objects instead of spanstargetfield at all call sites were we construct aptpb.Record. (Backup, CDC, tests)system.protected_timestamp_recordstable schema to have an additionalBYTEScolumn to store thistargetinformation. This includes adding a migration for clusters being upgraded.Protectmethod (and other ptpb.Storage interface methods) to insert into the newtargetcolumn.SQLTranslator,SQLWatcher, andReconcilerto emit relevant span configurations.- spanconfigsqltranslator: introduce a pts table reader #74737
- spanconfigsqltranslator: populate protected_timestamps in SpanConfig #74803
- spanconfigsqlwatcher: add a
system.protected_ts_recordsdecoder #74913- spanconfigsql{watcher,reconciler}: setup SQLWatcher to watch for pts updates #75122
KV side
SystemSpanConfigand related protos #74765: Data model change to span configurations to enable PTSTargetsandRecords, removeroachpb.SpanConfigEntryin package spanconfig to as a prerequisite to modifying RPCsSystemSpanConfigsKVAccessorchanges to write system span configurations- spanconfig: teach the KVAccessor about system span configurations #76414
- spanconfig: introduce new read-only system target #76721
SystemSpanConfigStoreto keep an in-memory copy of allSystemSpanConfigs+ hydrate configurations when serving themKVSubscriberto react to system span configuration updates- spanconfig: introduce the ProtectedTSReader interface #75285 Introduce the
ProtectedTSReaderinterface, have theprotectedts.Cacheimplement it, and makeAdminVerifyProtectedTimestampa no-op.- spanconfig: implement the ProtectedTSReader interface on the KVSubscriber #77338 Make the
KVSubscriberimplement theProtectedTSReaderinterface and create an adapter interface to work with both the old and new subsystems for v22.1.Stability followups (requirements):
Verifycalls, and verification logic while still supporting semantics in a mixed-version state.Stability followups (nice to have):
spanconfig.Storeandspanconfig.KVSubscriberdatadriven tests.Dropped approach for RPCS:
Epic: CRDB-10306
Jira issue: CRDB-11712