Uploaded image for project: 'Drivers'
  1. Drivers
  2. DRIVERS-405

Retryable Reads

    • Type: Icon: Epic Epic
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Component/s: None
    • Labels:
      None
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      NODE-1744 Fixed 3.3.0
      SCALA-466 Done
      PYTHON-1674 Fixed 3.9
      CSHARP-2429 Done
      PERL-1025 Fixed 2.2.0
      RUBY-1562 Fixed 2.9.0.rc0
      JAVA-3070 Fixed 3.11.0
      CXX-1685 Fixed 3.5.0
      PHPC-1291 Fixed 1.6.0alpha3, 1.6.0
      MOTOR-283 Fixed 2.1
      GODRIVER-624 Fixed 1.1.0
      CDRIVER-2873 Fixed 1.15.0
      RUST-128 Fixed 1.1.0
      CSHARP-2482 Fixed 2.9.0
      SWIFT-587 Fixed 0.2.0
      $i18n.getText("admin.common.words.show")
      #scriptField, #scriptField *{ border: 1px solid black; } #scriptField{ border-collapse: collapse; } #scriptField td { text-align: center; /* Center-align text in table cells */ } #scriptField td.key { text-align: left; /* Left-align text in the Key column */ } #scriptField a { text-decoration: none; /* Remove underlines from links */ border: none; /* Remove border from links */ } /* Add green background color to cells with FixVersion */ #scriptField td.hasFixVersion { background-color: #00FF00; /* Green color code */ } /* Center-align the first row headers */ #scriptField th { text-align: center; } Key Status/Resolution FixVersion NODE-1744 Fixed 3.3.0 SCALA-466 Done PYTHON-1674 Fixed 3.9 CSHARP-2429 Done PERL-1025 Fixed 2.2.0 RUBY-1562 Fixed 2.9.0.rc0 JAVA-3070 Fixed 3.11.0 CXX-1685 Fixed 3.5.0 PHPC-1291 Fixed 1.6.0alpha3, 1.6.0 MOTOR-283 Fixed 2.1 GODRIVER-624 Fixed 1.1.0 CDRIVER-2873 Fixed 1.15.0 RUST-128 Fixed 1.1.0 CSHARP-2482 Fixed 2.9.0 SWIFT-587 Fixed 0.2.0

      Epic Summary

      Summary

      Drivers will automatically retry any read operation that has not yet received any results exactly once. 

      Motivation

      Alleviate application developer pain

      • Application developers want to design fault tolerant or highly available applications without having to implement retry logic in their application
      • Application developers currently have to write boilerplate retry logic for reads (but not for writes).
      • Much like for retryable writes, developers should not need to think about this type of retry logic.
      • Furthermore, application developers transitioning from traditional, non-distributed architectures and topologies sometimes have a hard time reasoning about transitional MongoDB states due to single node faults or sharding/replication state.
      • Automatically retrying reads will allow these developers to focus more on the business logic and less on the implementation details of MongoDB.

      Alleviate Atlas team pain.

      • The Atlas team should be able to perform unplanned maintenance without impacting end users or requiring developers to add logic to prevent these failures from being exposed to the user.

       

      Cast of Characters

      Lead: behackett
      Author:
      POCs: Python, C#
      Product Owner: Scott L; Rachelle Palmer
       

      Documentation

      Relevant spec changes

            Assignee:
            Unassigned Unassigned
            Reporter:
            rathi.gnanasekaran Rathi Gnanasekaran
            Votes:
            0 Vote for this issue
            Watchers:
            11 Start watching this issue

              Created:
              Updated:
              Resolved: