[DRIVERS-405] Retryable Reads Created: 08/Aug/17  Updated: 28/Oct/23  Resolved: 11/Jun/20

Status: Closed
Project: Drivers
Component/s: None
Fix Version/s: None

Type: Epic Priority: Major - P3
Reporter: Rathi Gnanasekaran Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on NODE-1744 Retryable Reads Closed
depends on RUBY-1562 Retryable Reads Closed
depends on CDRIVER-2873 Retryable Reads Closed
depends on CSHARP-2429 POC for Retryable Reads Closed
depends on CSHARP-2482 Full implementation of retryable reads Closed
depends on CXX-1685 Retryable Reads Closed
depends on GODRIVER-624 Retryable Reads Closed
depends on JAVA-3070 Retryable Reads Closed
depends on MOTOR-283 Retryable Reads Closed
depends on PHPC-1291 Retryable Reads Closed
depends on PYTHON-1674 Retryable Reads Closed
depends on RUST-128 Retryable Reads Closed
depends on DRIVERS-615 countDocuments should use group with ... Closed
depends on SERVER-34943 failCommand failpoint should ignore c... Closed
Initiative
Related
related to DOCS-12964 Retryable reads undocumented Closed
is related to SERVER-39478 Backport failCommand failPoint to 3.6 Closed
Server Compat: 4.0, 4.1, 4.2
Quarter: FY21Q1
Case:
Driver Compliance:
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

 Description   
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



 Comments   
Comment by Alexander Golin (Inactive) [ 11/Jun/20 ]

Closed out the final dependency DRIVERS-615, all dependencies are now complete.

Comment by Shane Harvey [ 27/Mar/19 ]

Now that this depends on the runOn syntax added in SPEC-1253, drivers also need to implement (or otherwise workaround) the countDocuments change in DRIVERS-615.

Comment by Githook User [ 21/Feb/19 ]

Author:

{'name': 'Shane Harvey', 'email': 'shane.harvey@mongodb.com', 'username': 'ShaneHarvey'}

Message: DRIVERS-405 Fix mapReduce retryable reads test (#494)
Branch: master
https://github.com/mongodb/specifications/commit/1bc3b11c8d7523c7f1099b4c0c0839f3a0f33804

Generated at Thu Feb 08 08:21:26 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.