Skip to content

Commit fabd583

Browse files
authored
DOCSP-33760 Read Write Sync FAQ (#193)
* DOCSP-33760 Read Write Sync FAQ * typos * * * JA feedback * switch order * * * JA feedback * external feedback * final feedback
1 parent c0ce6bb commit fabd583

File tree

6 files changed

+67
-25
lines changed

6 files changed

+67
-25
lines changed

source/faq.txt

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,24 @@ This page provides answers to some frequently asked questions we have
1717
encountered. If you have additional questions please contact MongoDB
1818
Support.
1919

20+
Can I perform reads or writes to my destination cluster while ``mongosync`` is syncing?
21+
---------------------------------------------------------------------------------------
22+
23+
You can perform reads during synchronization if ``canCommit`` is ``true``.
24+
However, the data that you read is
25+
:term:`eventually consistent <eventual consistency>`, meaning that you might not
26+
always read the latest writes.
27+
28+
During an ongoing sync, you can write to any non-synced namespaces in the
29+
destination cluster as long as the source cluster doesn’t include a namespace
30+
with the same name. If you write to a synced namespace before issuing a
31+
:ref:`commit <c2c-api-commit>` and while ``canWrite`` is ``false``, the behavior
32+
is undefined. To avoid this undefined behavior, you can enable
33+
:ref:`write blocking <c2c-dr-write-blocking>`.
34+
35+
To check the value of ``canCommit`` or ``canWrite``, call the :ref:`progress
36+
<c2c-api-progress>` API endpoint.
37+
2038
Can ``mongosync`` run on its own hardware?
2139
------------------------------------------
2240

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
When the :ref:`/progress <c2c-api-progress>` endpoint reports ``canWrite`` is
2+
``true``, the data on the source and destination clusters is consistent.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Read operations on the source cluster are always permitted.

source/includes/fact-write-blocking-requirement.rst

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,3 @@ role that includes the :authaction:`setUserWriteBlockMode` and
77
When using ``enableUserWriteBlocking``, writes are only blocked for users
88
that do not have the :authaction:`bypassWriteBlockingMode` ActionType. Users
99
who have this ActionType are able to perform writes.
10-
11-

source/reference/mongosync-states.txt

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -77,26 +77,3 @@ operations in that state.
7777
* - ``COMMITTED``
7878
- The cutover for the sync process is complete.
7979
- - ``GET`` :ref:`/progress <c2c-api-progress>`
80-
81-
Read Operations
82-
---------------
83-
84-
Read operations on the source cluster are always permitted.
85-
86-
When the ``/progress`` endpoint reports ``canWrite`` is ``true``, the
87-
data on the source and destination clusters is consistent.
88-
89-
Write Operations
90-
----------------
91-
92-
.. include:: /includes/fact-write-blocking-check.rst
93-
94-
.. include:: /includes/fact-write-blocking-when.rst
95-
96-
Write-blocking
97-
~~~~~~~~~~~~~~
98-
99-
.. include:: /includes/fact-write-blocking-enable.rst
100-
101-
.. include:: /includes/fact-write-blocking-requirement.rst
102-

source/reference/mongosync.txt

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,52 @@ User Permissions
218218

219219
.. include:: /includes/fact-write-blocking-requirement.rst
220220

221+
Permissible Reads
222+
`````````````````
223+
224+
.. include:: /includes/fact-read-operations-source.rst
225+
226+
.. include:: /includes/fact-read-operations-check.rst
227+
228+
Permissible Writes
229+
``````````````````
230+
231+
.. include:: /includes/fact-write-blocking-check.rst
232+
233+
.. include:: /includes/fact-write-blocking-when.rst
234+
235+
Commit
236+
~~~~~~
237+
238+
To stop syncing, use the :ref:`commit <c2c-api-commit>` command on the
239+
destination cluster to convert indexes and finalize the changes. If you
240+
enable :ref:`write-blocking <c2c-write-blocking>`:
241+
242+
243+
- ``commit`` blocks writes on the source cluster.
244+
- ``commit`` blocks writes on the destination cluster until
245+
``mongosync`` begins index validation.
246+
247+
248+
To monitor the ``commit`` process, use the :ref:`progress
249+
<c2c-api-progress>` command:
250+
251+
- The destination cluster is writable when ``canWrite`` is true.
252+
- Index conversion is complete when ``mongosync`` enters the
253+
``COMMITTED`` state.
254+
255+
User Permissions
256+
````````````````
257+
258+
.. include:: /includes/fact-write-blocking-requirement.rst
259+
260+
Permissible Reads
261+
`````````````````
262+
263+
.. include:: /includes/fact-read-operations-source.rst
264+
265+
.. include:: /includes/fact-read-operations-check.rst
266+
221267
Permissible Writes
222268
``````````````````
223269

0 commit comments

Comments
 (0)