From b56d29a06f9a8dc49cb99962b89306315ac16f9a Mon Sep 17 00:00:00 2001 From: ian fogelman Date: Mon, 9 Aug 2021 10:30:47 -0400 Subject: [PATCH] DOCS-14695-Upgrading language strength with regards to hidden delayed members --- source/core/replica-set-delayed-member.txt | 9 +++-- source/core/replica-set-hidden-member.txt | 6 ++-- .../important-delayed-replica-set-members.rst | 34 +++++++++++++++++++ 3 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 source/includes/important-delayed-replica-set-members.rst diff --git a/source/core/replica-set-delayed-member.txt b/source/core/replica-set-delayed-member.txt index bdd5a61c384..df8406cba12 100644 --- a/source/core/replica-set-delayed-member.txt +++ b/source/core/replica-set-delayed-member.txt @@ -39,11 +39,16 @@ Delayed members: members. Set the priority to 0 to prevent a delayed member from becoming primary. -- **Should be** :ref:`hidden ` +- **Must be** :ref:`hidden ` members. Always prevent applications from seeing and querying delayed members. -- *Do* vote in :term:`elections ` for primary, if :rsconf:`members[n].votes` is set to 1. +- *Do* vote in :term:`elections ` 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 ~~~~~~~~ diff --git a/source/core/replica-set-hidden-member.txt b/source/core/replica-set-hidden-member.txt index e26261655ab..3fd2d10e999 100644 --- a/source/core/replica-set-hidden-member.txt +++ b/source/core/replica-set-hidden-member.txt @@ -39,8 +39,10 @@ Clients will not distribute reads with the appropriate :doc:`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 ` -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. diff --git a/source/includes/important-delayed-replica-set-members.rst b/source/includes/important-delayed-replica-set-members.rst new file mode 100644 index 00000000000..ebd10c4b8e8 --- /dev/null +++ b/source/includes/important-delayed-replica-set-members.rst @@ -0,0 +1,34 @@ +.. important:: + + If your replica set contains :doc:`delayed members + ` 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` + (PSA) replica set. + + For more information on the majority commit point, see + :doc:`Causal Consistency and Read and Write Concerns + `. For additional + details on resolving performance issues see the + :ref:`replica set maintenance tutorial`. \ No newline at end of file