[SERVER-45998] More eligible nodes for hedged nearest reads Created: 05/Feb/20  Updated: 25/Jul/22

Status: Open
Project: Core Server
Component/s: Internal Code
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Mira Carey Assignee: Shameek Ray
Resolution: Unresolved Votes: 0
Labels: servicearch-followon
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
Related
Backwards Compatibility: Fully Compatible
Sprint: Service Arch 2020-02-24, Service Arch 2020-03-09, Service Arch 2020-03-23, Service Arch 2020-04-06, Service Arch 2022-05-30, Service Arch 2022-06-13, Service Arch 2022-06-27
Participants:

 Description   

For reads with readPreference nearest, we only consider nodes within the acceptable latency window (currently the ping time of the closest node, up to the ping time of the closest node + 15ms). This can often select only a single node (if the replica set members are in distinct physical locations more than 15ms apart).

This is less than ideal when considering implicit read hedging, in that hedging can only be performed against the originally returned list of eligible nodes. I.e. if you have 1 closest node, and use read preference nearest, you would never actually hedge any reads.

The proposal here is to alter the behavior of read preference nearest, for the purposes of read hedging, to submit hedged reads to nodes outside the latency window. My suggestion is to essentially recompute what "nearest" would be, after removing the first node from consideration. I.e. if my replica set looked like: [ Closest(5ms), Next(100ms), NextAgain(105ms) ], that you would submit the initial read to Closest, then randomly dispatch the hedged read to Next or NextAgain.



 Comments   
Comment by George Wangensteen [ 16/Jun/22 ]

Assigning to shameek.ray@mongodb.com  based on what blake.oler@mongodb.com told me as an outcome of product sync.

Comment by Lauren Lewis (Inactive) [ 21/Dec/21 ]

We haven’t heard back from you in at least 1 year, so I'm going to close this ticket. If this is still an issue for you, please provide additional information and we will reopen the ticket.

Generated at Thu Feb 08 05:10:14 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.