Skip to content

Commit aebf3d5

Browse files
author
Sam Kleinman
committed
DOCS-363 corrections in response to read preference changes
1 parent 5ced82e commit aebf3d5

File tree

1 file changed

+25
-14
lines changed

1 file changed

+25
-14
lines changed

source/applications/replication.txt

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -132,12 +132,14 @@ useful for:
132132
than the primary or the rest of the set, you may see better
133133
performance for that application if you use secondary reads.
134134

135-
Secondary reads also provide graceful degradation in :ref:`failover
136-
<replica-set-failover>` situations. During failover, replica sets may
137-
take 10 seconds or more to new primary member. Because there is no
138-
primary, applications will not be unable to perform primary reads
139-
during this period. With read preference set to read from secondary
140-
members, your application can continue read operations using the
135+
Secondary reads also provide graceful degradation in
136+
:ref:`failover <replica-set-failover>` situations. During failover, replica sets may take
137+
10 seconds or more to elect a new primary. Because there is no primary,
138+
applications that can only read from primaries, with the
139+
:readmode:`primary` read preference mode, are unable to perform reads during this period.
140+
With read preference configured permit read from secondary
141+
members, as with the :readmode:`primaryPrefered` read preference mode, your
142+
application can continue read operations using the
141143
remaining secondary members.
142144

143145
MongoDB :term:`drivers <driver>` allow client applications to
@@ -152,8 +154,8 @@ address read preference configuration and operations.
152154

153155
.. note::
154156

155-
Read preference have no affect on write performance or write
156-
operations. Read preferences only affect the members of the replica
157+
Read preference only affect which members of the set the application chooses
158+
to read from. Read preferences only affect the members of the replica
157159
set that the read operation uses, as well as the consistency of
158160
query results. Use appropriate :ref:`write concern
159161
<replica-set-write-concern>` policies to ensure proper data
@@ -180,7 +182,7 @@ All MongoDB drivers :doc:`drivers </applications/drivers>` support the
180182
following read preference modes. These semantics make it possible to
181183
specify read preference on a per-collection or per-operation
182184
basis. The member of the :term:`replica set` that the client read from
183-
can affect type of consistency of the result set. See the :ref:`read
185+
can affect the consistency of the result set. See the :ref:`read
184186
preference background <replica-set-read-preference-background>` and
185187
:ref:`read preference behavior <replica-set-read-preference-behavior>`
186188
for more information. Also see the :api:`documentation for your driver
@@ -225,9 +227,9 @@ provides access to read preferences, which have the following names.
225227

226228
.. readmode:: secondary
227229

228-
With the :readmode:`secondary` read preference mode, operations
229-
will read from the :term:`secondary` member of the set in most
230-
situations. However, if all secondaries are unavailable, then these
230+
With the :readmode:`secondary` read preference mode, operations
231+
will read from the :term:`secondary` member of the set if available.
232+
However, if there are no secondaries available, then these
231233
operations will produce an error or exception.
232234

233235
Most sets have at least one secondary, but there are situations
@@ -275,6 +277,13 @@ provides access to read preferences, which have the following names.
275277
specified tag set and directs reads to a random secondary from
276278
among the :ref:`nearest group <replica-set-read-preference-behavior-nearest>`.
277279

280+
.. note::
281+
282+
All operations read from the nearest member of the replica set
283+
that matches the specified read preference mode.
284+
:readmode:`nearest` prefers low latency reads over a
285+
member's :term:`primary` or :term:`secondary` status.
286+
278287
.. For I/O-bound users who want to distribute reads across all
279288
members evenly regardless of ping time, set
280289
secondaryAcceptableLatencyMS very high.
@@ -348,7 +357,7 @@ As a result, MongoDB drivers, and :program:`mongos` will:
348357
connection is *pinned* to this :program:`mongod`.
349358

350359
- attempt to reconnect to a new member, obeying existing :ref:`read
351-
preference mode <replica-set-read-preference-modes>` when it loose a
360+
preference mode <replica-set-read-preference-modes>` when it lose a
352361
connection to its :program:`mongod`.
353362

354363
These reconnections are transparent to the application itself. If
@@ -359,7 +368,9 @@ As a result, MongoDB drivers, and :program:`mongos` will:
359368
the state of your database at different moments.
360369

361370
- return an error *only* after attempting to connect to three members
362-
of the set. If there are fewer than three members of the set, the
371+
of the set that match the :term:`read preference mode <replica-set-read-preference-modes>`
372+
and :ref:`tag set <replica-set-read-preference-tag-sets>`.
373+
If there are fewer than three members of the set, the
363374
client will error after connecting to all existing members of the
364375
set.
365376

0 commit comments

Comments
 (0)