From d19a2328776c77498fda260e7973e4c0810c62d0 Mon Sep 17 00:00:00 2001 From: ian fogelman Date: Mon, 9 Aug 2021 10:30:47 -0400 Subject: [PATCH 1/2] DOCS-14695-Upgrading language strength with regards to hidden delayed members --- source/core/replica-set-delayed-member.txt | 4 ++- source/core/replica-set-hidden-member.txt | 6 +++-- .../important-delayed-replica-set-members.rst | 27 +++++++++++++++++++ 3 files changed, 34 insertions(+), 3 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..c40a68e3948 100644 --- a/source/core/replica-set-delayed-member.txt +++ b/source/core/replica-set-delayed-member.txt @@ -39,12 +39,14 @@ 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. +.. 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..10177784a27 --- /dev/null +++ b/source/includes/important-delayed-replica-set-members.rst @@ -0,0 +1,27 @@ +.. 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 read concern + :readconcern:`"majority"`. + + If you do not hide delayed members and one or more nodes + becomes 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: + + - Primary-Secondary-Delayed replica set config where delayed + secondary is voting with 10 mins delay. + - With one non-delayed secondary unavailable, the degraded config of + Primary-Delayed will have to wait at least 10 minutes for a write + concern with majority to be acknowledged. + - The majority commit point will take longer to advance leading to + cache pressure similar to performance issues with a PSA replica + set. \ No newline at end of file From d1a77639df41ceed8705059edad0862cd40017f8 Mon Sep 17 00:00:00 2001 From: ian fogelman Date: Mon, 9 Aug 2021 10:30:47 -0400 Subject: [PATCH 2/2] DOCS-14695-Upgrading language strength with regards to hidden delayed members --- source/core/replica-set-delayed-member.txt | 5 ++- .../important-delayed-replica-set-members.rst | 31 ++++++++++++------- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/source/core/replica-set-delayed-member.txt b/source/core/replica-set-delayed-member.txt index c40a68e3948..df8406cba12 100644 --- a/source/core/replica-set-delayed-member.txt +++ b/source/core/replica-set-delayed-member.txt @@ -43,7 +43,10 @@ Delayed members: 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 diff --git a/source/includes/important-delayed-replica-set-members.rst b/source/includes/important-delayed-replica-set-members.rst index 10177784a27..46fae1f58d9 100644 --- a/source/includes/important-delayed-replica-set-members.rst +++ b/source/includes/important-delayed-replica-set-members.rst @@ -7,21 +7,28 @@ 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 read concern - :readconcern:`"majority"`. + count towards acknowledging write operations with write concern + :writeconcern:`"majority"`. If you do not hide delayed members and one or more nodes - becomes unavailable, the replica set has to wait for the delayed + 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: + For example, consider a Primary-Secondary-Delayed replica set + configuration where the delayed secondary is voting with a 10 + minute delay. - - Primary-Secondary-Delayed replica set config where delayed - secondary is voting with 10 mins delay. - - With one non-delayed secondary unavailable, the degraded config of - Primary-Delayed will have to wait at least 10 minutes for a write - concern with majority to be acknowledged. - - The majority commit point will take longer to advance leading to - cache pressure similar to performance issues with a PSA replica - set. \ No newline at end of file + 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`.