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

Do not throw exception in AutoSplitVector on empty ranges

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 5.3.0, 5.0.7, 5.2.2
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • Fully Compatible
    • v5.2, v5.0, v4.4, v4.2, v4.0
    • Sharding EMEA 2022-02-07

      Because the move and merge chunk phase has no guarantees that all small chunks will be merged, there is a possibility that there are empty chunks left in the split chunk phase (this could also happen on cancellation of defragmentation). The AutoSplitVectorCommand fails with this error when called on an empty range. Currently, the defragmentation algorithm treats this as a non-retryable error, rebuilds phase 3, and then executes the same command causing defragmentation to get stuck. We need to ignore this specific error response as though it was a success since there is no need to split an empty range.

      Another possible solution would be to modify the auto split vector command to return success with no split points if a range is empty.

            tommaso.tocci@mongodb.com Tommaso Tocci
            allison.easton@mongodb.com Allison Easton
            0 Vote for this issue
            2 Start watching this issue