Skip to content

Commit

Permalink
NODE-1049 only include primary server if there are no secondary serve… (
Browse files Browse the repository at this point in the history
#194)

* NODE-1049 only include primary server if there are no secondary servers for readPrefrence secondaryPreferred

* minor correction to fix test error

* removed commented out code and stray 2

* minor tweak to test case to make less brittle
  • Loading branch information
christkv authored and mbroadst committed Jun 23, 2017
1 parent 454448a commit c14fb5c
Showing 1 changed file with 22 additions and 4 deletions.
26 changes: 22 additions & 4 deletions topologies/replset_state.js
Original file line number Diff line number Diff line change
Expand Up @@ -759,15 +759,24 @@ function pickNearestMaxStalenessSeconds(self, readPreference) {
}

// Add primary to list if not a secondary read preference
if(self.primary && readPreference.preference != 'secondary') {
servers.push(self.primary);
if(self.primary
&& readPreference.preference != 'secondary'
&& readPreference.preference != 'secondaryPreferred') {
servers.push(self.primary);
}

// Add all the secondaries
for(var i = 0; i < self.secondaries.length; i++) {
servers.push(self.secondaries[i]);
}

// If we have a secondaryPreferred readPreference and no server add the primary
if(self.primary
&& servers.length == 0
&& readPreference.preference != 'secondaryPreferred') {
servers.push(self.primary);
}

// Filter by tags
servers = filterByTags(readPreference, servers);

Expand Down Expand Up @@ -807,15 +816,24 @@ function pickNearest(self, readPreference) {
var servers = [];

// Add primary to list if not a secondary read preference
if(self.primary && readPreference.preference != 'secondary') {
servers.push(self.primary);
if(self.primary
&& readPreference.preference != 'secondary'
&& readPreference.preference != 'secondaryPreferred') {
servers.push(self.primary);
}

// Add all the secondaries
for(var i = 0; i < self.secondaries.length; i++) {
servers.push(self.secondaries[i]);
}

// If we have a secondaryPreferred readPreference and no server add the primary
if(servers.length == 0
&& self.primary
&& readPreference.preference != 'secondaryPreferred') {
servers.push(self.primary);
}

// Filter by tags
servers = filterByTags(readPreference, servers);

Expand Down

0 comments on commit c14fb5c

Please sign in to comment.