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

AutoMerger's `_maxHistoryTimeCurrentRound` never updated due to variable shadowing

    • Type: Icon: Bug Bug
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 7.2.0-rc0, 7.0.2, 7.1.0
    • Component/s: None
    • None
    • Catalog and Routing
    • ALL
    • Sharding EMEA 2023-10-30
    • 2
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      The _maxHistoryTimeCurrentRound variable supposed to drive auto-merging scanning is never updated due to a variable shadowing that was committed involuntarily.

      This is not a correctness bug since it results in "simply" forcing the auto-merger to unnecessarily scan through chunks already inspected in previous rounds.

      Purpose of this ticket is to understand whether it makes sense to fix this bug or just get rid of the variable: fixing this performance bug would mean introducing a correctness bug since the auto-merger would skip scanning chunks that were split without being migrated. The side effect would be produced by this query that only returns chunks result of a migration (splits don't change onCurrentShardSince).

      Other options would be:

      • Force a reset of _maxHistoryTimePreviousRound when a split happens
      • Or - more fine grained - keep a _maxHistoryTimePreviousRound per collection and just reset it for collections that undergo some split

            Assignee:
            Unassigned Unassigned
            Reporter:
            pierlauro.sciarelli@mongodb.com Pierlauro Sciarelli
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: