-
Type: Task
-
Resolution: Duplicate
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
The Read Preferences spec siad that a thread's first read in a request pins it to a replica-set member, and stays pinned until the request ends or the thread reads with a preference that the pinned member cannot satisfy. THE CHANGE: When a driver pins a thread to a member, it remembers the read preference used for this read – the mode, tags, and secondaryAcceptableLatencyMS. If the next read has a different mode, tags, or secondaryAcceptableLatencyMS, unpin the member and start the member-selection process from scratch.
NOTE: All primary operations within the request must use the same socket, even if interleaved with operations on secondaries. (For simplicity, drivers may also use a single socket on each secondary, but this is not required.)