Investigate changes in SERVER-114505: Basic support for viewless timeseries upgrade/downgrade in replica sets

    • Type: Investigation
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Tools and Replicator
    • 7

      Original Downstream Change Summary

      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.

            Assignee:
            Unassigned
            Reporter:
            Backlog - Core Eng Program Management Team
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: