- Replication >
- Replica Set Members >
- Replica Set Secondary Members >
- Priority 0 Replica Set Members
Priority 0 Replica Set Members¶
On this page
A priority 0 member is a member that
cannot become primary and cannot trigger
elections. Priority 0 members can acknowledge write
operations issued with write concern of
w : <number>. For "majority" write concern, the priority 0
member must also be a voting member (i.e. members[n].votes is
greater than 0) to acknowledge the write. Non-voting replica set
members (i.e. members[n].votes is 0) cannot contribute to
acknowledging write operations with "majority" write concern.
Other than the aforementioned restrictions, secondaries that have
priority 0 function as normal
secondaries: they maintain a copy of the data set, accept read
operations, and vote in elections.
Configure a secondary to have priority 0 to prevent it from becoming primary, which is particularly useful in multi-data center deployments.
For example, in the following diagram, one data center hosts the primary and a secondary. A second data center hosts a secondary with priority 0. Only the members in data center 1 can become primary.
Priority 0 Members as Standbys¶
A secondary with priority 0 can
function as a standby. In some replica sets, it might not be possible
to add a new member in a reasonable amount of time. A standby member
keeps a current copy of the data to be able to replace an unavailable
member.
In many cases, you need not set standby to priority 0. However, in replica sets with varied hardware or geographic distribution, a priority 0 standby ensures that only certain members become primary.
A priority 0 standby may also be valuable for some members of a set with different hardware or workload profiles. In these cases, deploy a member with priority 0 so it can’t become primary. Also consider using an hidden member for this purpose.
If your set already has seven voting members, also configure the member as non-voting.
Failover Considerations¶
When configuring a secondary to have priority 0, consider potential failover patterns, including
all possible network partitions. Always ensure that your main data
center contains both a quorum of voting members and members that are
eligible to be primary.
Example¶
To configure a secondary to have priority 0, see
Prevent Secondary from Becoming Primary.