Uploaded image for project: 'Compass '
  1. Compass
  2. COMPASS-6211

Investigate changes in PM-3038: Mongos communicates retryable error labels from shards to drivers

    XMLWordPrintableJSON

Details

    • Icon: Investigation Investigation
    • Resolution: Done
    • Icon: Major - P3 Major - P3
    • No version
    • None
    • None
    • None
    • Not Needed
    • Iteration Quahog

    Description

      Original Downstream Change Summary

      This is a dependency for DRIVERS-555 to be effective.

      Description of Linked Ticket

      Epic Summary

      Summary

      Expose RetryableWriteError and NoWritesPerformed error labels from mongos to drivers.

      Motivation

      Since MongoDB 4.4 (SERVER-41245), drivers rely on the RetryableWriteError label to indicate whether or not an error response from the server warrants a retry. Current versions of mongos only return the RetryableWriteError label when the mongos itself is shutting down and not when there’s been a retryable error from one of the shards. Note that mongos itself retries on retryable errors from the shards up to three (3) times.

      The work from DRIVERS-555 (Client Side Operations Timeout) enables applications to set a deadline until which the driver should continue to retry. This may mean an application is willing to retry longer than the duration of the retries performed by mongos. Having mongos propagate back a RetryableWriteError label when it gives up retrying can signal to drivers whether they want to continue retrying themselves.

      Moreover, drivers also rely on the NoWritesPerformed error label (SERVER-66479) to decide upon retry which error response to expose to the application. Current versions of mongos never return the NoWritesPerformed error label.

      Documentation

      Scope Document
      Technical Design Document

      Attachments

        Activity

          People

            rhys.howell@mongodb.com Rhys Howell
            backlog-server-pm Backlog - Core Eng Program Management Team
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: