-
Type:
Investigation
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Tools and Replicator
-
7
As part of the viewless timeseries / eliminate dual timeseries namespace track (SPM-3969 / SPM-3830) we added a new oplog 'c' (command) entry type that transforms a timeseries collection from viewful format ("myts" view + "system.buckets.myts" collection) to viewless format ("myts" timeseries collection) or vice versa.
This oplog entry is generated during a setFCV upgrade/downgrade across versions 8.x ↔ 9.0.
The format of the new oplog entry is as follows:
*UPGRADE FROM 8.x TO 9.0*
{
op: "c",
ns: "mydb.$cmd",
// This is the UUID of the system.buckets collection
ui: UUID("2aaf70a6-42ef-4933-8ef7-72e2a31c6093"),
o: {
upgradeDowngradeViewlessTimeseries: "myts",
isUpgrade: true
},
// ...other common oplog fields
}
*DOWNGRADE FROM 9.0 TO 8.x*
{
op: "c",
ns: "mydb.$cmd",
// This is the UUID of the viewless timeseries collection
ui: UUID("2aaf70a6-42ef-4933-8ef7-72e2a31c6093"),
o: {
upgradeDowngradeViewlessTimeseries: "myts",
isUpgrade: false
},
// ...other common oplog fields
}
Description of Linked Ticket
Building upon SERVER-114830, implement basic upgrade/downgrade support between viewful and viewless timeseries at the replica set level.
- Replication of upgrade/downgrade in the oplog via a custom 'c' entry - this allows secondaries to apply to upgrade/downgrade atomically.
- Integration into setFCV.
The goal of this ticket is to provide a targeted multiversion test that can upgrade/downgrade a timeseries collection.
Further test enablement will be done by follow up tickets because many operations (e.g. drop, timeseries read & write path, jstests themselves) do not expect the timeseries format to change mid-operation and will need to be fixed.
- depends on
-
SERVER-114505 Basic support for viewless timeseries upgrade/downgrade in replica sets
-
- Closed
-