Skip to content

Commit

Permalink
DOCS-14695-Upgrading language strength with regards to hidden delayed… (
Browse files Browse the repository at this point in the history
#5790)

* DOCS-14695-Upgrading language strength with regards to hidden delayed members

* DOCS-14695-Upgrading language strength with regards to hidden delayed members
  • Loading branch information
ianf-mongodb authored Sep 20, 2021
1 parent 01342e3 commit 3e1a246
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 4 deletions.
9 changes: 7 additions & 2 deletions source/core/replica-set-delayed-member.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,16 @@ Delayed members:
members. Set the priority to 0 to prevent a delayed member from
becoming primary.

- **Should be** :ref:`hidden <replica-set-hidden-members>`
- **Must be** :ref:`hidden <replica-set-hidden-members>`
members. Always prevent applications from seeing and querying
delayed members.

- *do* vote in :term:`elections <election>` for primary, if :rsconf:`members[n].votes` is set to 1.
- *Do* vote in :term:`elections <election>` for primary, if
:rsconf:`members[n].votes` is set to 1. Ensuring that delayed members
are non-voting by setting :rsconf:`members[n].votes` to 0 can help
improve performance.

.. include:: /includes/important-delayed-replica-set-members.rst

Behavior
~~~~~~~~
Expand Down
6 changes: 4 additions & 2 deletions source/core/replica-set-hidden-member.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,10 @@ Clients will not distribute reads with the appropriate :doc:`read
preference </core/read-preference>` to hidden members. As a result, these
members receive no traffic other than basic replication. Use hidden
members for dedicated tasks such as reporting and
backups. :doc:`Delayed members </core/replica-set-delayed-member>`
should be hidden.
backups.

.. include:: /includes/important-delayed-replica-set-members.rst


In a sharded cluster, :binary:`~bin.mongos` do not interact with hidden
members.
Expand Down
34 changes: 34 additions & 0 deletions source/includes/important-delayed-replica-set-members.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
.. important::

If your replica set contains :doc:`delayed members
</core/replica-set-delayed-member>` ensure that the delayed
members are hidden and non-voting.

Hiding delayed replica set members prevents applications from seeing
and querying delayed data without a direct connection to that member.
Making delayed replica set members non-voting means they will not
count towards acknowledging write operations with write concern
:writeconcern:`"majority"`.

If you do not hide delayed members and one or more nodes
become unavailable, the replica set has to wait for the delayed
member and the commit point lags. A lagged commit point can lead to
performance issues.

For example, consider a Primary-Secondary-Delayed replica set
configuration where the delayed secondary is voting with a 10
minute delay.

With one non-delayed secondary unavailable, the degraded configuration
of Primary-Delayed must wait at least 10 minutes to acknowledge a write
operation with :writeconcern:`"majority"`.The majority commit point
will take longer to advance, leading to cache pressure similar
performance issues with a
:ref:`Primary with a Secondary and an Arbiter<rs-architecture-psa>`
(PSA) replica set.

For more information on the majority commit point, see
:doc:`Causal Consistency and Read and Write Concerns
</core/causal-consistency-read-write-concerns>`. For additional
details on resolving performance issues see the
:ref:`replica set maintenance tutorial<performance-issues-psa>`.

0 comments on commit 3e1a246

Please sign in to comment.