-
Notifications
You must be signed in to change notification settings - Fork 1.7k
/
read-concern-local.txt
83 lines (56 loc) · 2.13 KB
/
read-concern-local.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
.. default-domain:: mongodb
.. class:: hidden
.. readconcern:: "local"
========================
Read Concern ``"local"``
========================
.. meta::
:description: read concern, local read concern, read isolation, transactions, multi-document transactions
:keywords: read concern, local read concern, read isolation, transactions, multi-document transactions
A query with read concern ``"local"`` returns data from the instance
with no guarantee that the data has been written to a majority of the
replica set members (i.e. may be rolled back).
Read concern ``"local"`` is the default for:
- read operations against primary
- read operations against secondaries if the reads are associated with
:ref:`causally consistent sessions <sessions>`.
.. include:: /includes/fact-readConcern-most-recent-data-in-node.rst
Causally Consistent Sessions
----------------------------
Read concern :readconcern:`local` is available for use with causally
consistent sessions.
.. _readconcern-local-txn:
Read Concern ``"local"`` and Transactions
-----------------------------------------
You set the read concern at the transaction level, not at the
individual operation level. To set the read concern for transactions,
see :ref:`transaction-options`.
Example
-------
.. include:: /includes/fact-read-concern-write-timeline.rst
Then, the following tables summarizes the state of the data that a read
operation with :readconcern:`"local"` read concern would see at
time ``T``.
.. figure:: /images/read-concern-write-timeline.svg
:alt: Timeline of a write operation to a three member replica set.
:figwidth: 330px
.. list-table::
:header-rows: 1
* - Read Target
- Time ``T``
- State of Data
* - Primary
- After t\ :sub:`0`
- Data reflects Write\ :sub:`0`.
* - Secondary\ :sub:`1`
- Before t\ :sub:`1`
- Data reflects Write\ :sub:`prev`
* - Secondary\ :sub:`1`
- After t\ :sub:`1`
- Data reflects Write\ :sub:`0`
* - Secondary\ :sub:`2`
- Before t\ :sub:`2`
- Data reflects Write\ :sub:`prev`
* - Secondary\ :sub:`2`
- After t\ :sub:`2`
- Data reflects Write\ :sub:`0`