[CXX-2414] Ignore read preference for $out/$merge on secondaries if any servers are pre-5.0 Created: 08/Nov/21  Updated: 27/Oct/23  Resolved: 22/Mar/22

Status: Closed
Project: C++ Driver
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: PM Bot Assignee: Jesse Williamson (Inactive)
Resolution: Works as Designed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Issue split
split from DRIVERS-1969 Ignore read preference for $out/$merg... Closed
Quarter: FY22Q4
Upstream Changes Summary:

DRIVERS-1969:
In mongodb/specifications@747b748, the rules were applying a read preference for aggregations using $out and $merge was changed. Previously, drivers were instructed to attempt using the read preference and only fall back to a primary if a pre-5.0 secondary was selected.

This was changed to require drivers to always disregard the read preference if there is any evidence of a pre-5.0 server. If there are either no available servers or all servers are 5.0+ (or load balanced, where we assume 5.0+), drivers can utilize the read preference.

Spec tests have not been changed, as this clarification really only changes behavior for mixed version clusters or a replica set consisting of a single pre-5.0 primary, neither of which are tested.


 Description   

This ticket was split from DRIVERS-1969, please see that ticket for a detailed description.



 Comments   
Comment by Jesse Williamson (Inactive) [ 22/Mar/22 ]

This depends on the wire protocol version and resultant sever selection negotiated by the underlying /connection/-- which are the C driver's responsibility. In the few C++ driver tests that reference readPreference, it's being read.

Generated at Wed Feb 07 22:05:51 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.