Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-90243

ShardCollection/Chunk Migrations/Resharding do not clone some collection catalog options.

    • Type: Icon: Bug Bug
    • Resolution: Gone away
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Catalog and Routing
    • ALL
    • v8.0, v7.3, v7.0, v6.0, v5.0
    • CAR Team 2024-05-27

      ShardCollection, Chunk migration and Resharding clone collection options using listCollections by calling MigrationDestinationManager::cloneCollectionIndexesAndOptions. This omits some collection options that are a part of a collection's catalog entry since listCollections won't return those options. (like timeseriesBucketsMayHaveMixedSchemaData or timeseriesBucketingParametersChanged).

       

      This is problematic because:

      If a timeseries collection with timeseriesBucketsMayHaveMixedSchemaData flag, undergoes shard collection/chunk migration/resharding it will clone mixed schema data and will fail with 
      CannotInsertTimeseriesBucketsWithMixedSchema since it did not copy over the timeseriesBucketsMayHaveMixedSchemaData flag. Similarly failing to have the timeseriesBucketingParametersChanged can return incorrect query results.

       

      We need a general way to transfer these catalog collection options when it's set whenever we clone the collection options for any future options as well.

       

      Additionally there is another option setRequiresTimeseriesExtendedRangeSupport that is only in-memory and is set when the bucket gets written by the timeseries op observers. We should confirm this flag is set correctly on the newer collection/chunk as well.

       

            Assignee:
            Unassigned Unassigned
            Reporter:
            kshitij.gupta@mongodb.com Kshitij Gupta
            Votes:
            0 Vote for this issue
            Watchers:
            16 Start watching this issue

              Created:
              Updated:
              Resolved: