Skip to content

Commit 29fc123

Browse files
authored
DOCSP-41415 Merge Older Version Support Feature Branch (#569)
* DOCSP-45860-older-version-limitations (#522) * DOCSP-45860-older-version-limitations * * * JA feedback * * * * * * * AV feedback * MvK feedback * DOCSP-45859 Version Compatibility (#518) * DOCSP-45859 Version Compatibility * * * * * * * AV feedback * swap list order * MvK feedback * DOCSP-45861 Older Version Support Task Page (#533) * DOCSP-45861 Older Version Support Task Page * add prerequisites & limitations * * * * * procedures * * * rn * * * remove extra step * nit * AV feedback * remove task page * * * * * * * DOCSP-45862 User permissions older version (#552) * DOCSP-45862-user-permissions * * * JD feedback * AV feedback * DOCSP-45863-embedded-verifier-migrations (#557) * DOCSP-45863-embedded-verifier-migrations * * * * * AV feedback * wording * add ddl limitation * * * RS feedback * * * remove merge conflict artifact * fix link title
1 parent d50b57d commit 29fc123

15 files changed

+202
-39
lines changed
Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
11
Starting in 1.7.0, ``mongosync`` can perform version migration from
22
certain lower major version source clusters to certain higher major
33
version destination clusters.
4-
5-
Cross-version migration requires additional preparation and
6-
configuration when migrating from a pre-6.0 release. To perform a cross-version
7-
migration from a pre-6.0 version of the MongoDB Server using
8-
``mongosync``, please `contact <https://mongodb.com/contact>`__ your
9-
account team to inquire about Professional Services.

source/includes/fact-minimum-fcv.rst

Lines changed: 0 additions & 2 deletions
This file was deleted.
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
- Writes that produce :term:`DDL <DDL (Data Definition Language)>` events cannot
2+
occur on the source cluster during the migration. The following events cannot
3+
occur:
4+
5+
- ``collMod``
6+
- ``create``
7+
- ``createIndexes``
8+
- ``drop``
9+
- ``dropDatabase``
10+
- ``dropIndexes``
11+
- ``refineCollectionShardKey``
12+
- ``rename``
13+
- ``reshardCollection``
14+
- ``shardCollection``
15+
16+
This includes operations that may create new collections such as
17+
:dbcommand:`mapReduce`, :pipeline:`$out`, and :pipeline:`$merge`. This also
18+
includes collections created implicitly from inserts. Only writes that produce
19+
CRUD events can occur during the migration.
20+
21+
.. note::
22+
23+
Writes that produce DDL events on source collections outside of the
24+
:ref:`namespace filter <c2c-filtered-sync>` are allowed.
25+
26+
- ``geoHaystack`` indexes are not supported.
27+
28+
- :ref:`/reverse <c2c-api-reverse>` endpoint is not supported. You can't
29+
enable the ``reversible`` option in the :ref:`/start <c2c-api-start>` request.
30+
31+
- You can't enable the ``enableUserWriteBlocking`` option in the ``/start``
32+
request. Ensure that no writes are made to the source or destination cluster
33+
during the migration.
34+
35+
- You can't enable the ``createSupportingIndexes`` :ref:`sharding parameter
36+
<c2c-api-start-sharding>`. Instead, create an index to support your shard key
37+
on the source cluster.
38+
39+
- If there are any indexes with inconsistent specs or that are missing
40+
``mongosync`` returns an error. To check for index inconsistencies, see
41+
:ref:`manage-indexes-find-inconsistent-indexes`.
42+
43+
- For source clusters running MongoDB 4.4, :ref:`SRV connection strings
44+
<connections-dns-seedlist>` are not supported. You must use a
45+
:ref:`standard connection string
46+
<connections-standard-connection-string-format>`.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Starting in version 1.10.0, ``mongosync`` supports migrations from pre-6.0
2+
source clusters.

source/includes/fact-verifier-limitations.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,13 @@ Unsupported Verification Checks
2828
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2929

3030
.. include:: /includes/fact-verifier-unsupported
31+
32+
.. note::
33+
34+
Starting in version 1.10, the verifier checks for data inconsistencies from
35+
a :ref:`DDL event <c2c-older-version-limitations>` that occurred on the
36+
pre-6.0 source cluster during migration. This is because pre-6.0 migrations
37+
do not support DDL events.
38+
39+
To learn more, see :ref:`Pre-6.0 Migration Limitations
40+
<c2c-older-version-limitations>`.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
For information on minimum supported versions, see
2+
:ref:`c2c-server-version-compatibility`.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
.. list-table::
2+
:header-rows: 1
3+
:stub-columns: 1
4+
:widths: 40 30 30
5+
6+
* -
7+
- **6.0 Destination**
8+
- **7.0 Destination**
9+
10+
* - **4.4 Source**
11+
- √
12+
-
13+
14+
* - **5.0 Source**
15+
- √
16+
- √
17+
18+
* - **6.0 Source**
19+
- √
20+
- √
21+
22+
* - **7.0 Source**
23+
-
24+
- √

source/reference/api/reverse.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,5 +170,7 @@ Endpoint Protection
170170
Limitations
171171
~~~~~~~~~~~
172172

173-
The ``reverse`` endpoint does not support :ref:`filtered sync
174-
<c2c-filtered-sync>`.
173+
The ``reverse`` endpoint does not support:
174+
175+
- :ref:`filtered sync <c2c-filtered-sync>`.
176+
- migrations from :ref:`pre-6.0 source clusters <c2c-older-version-support>`.

source/reference/api/start.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,9 @@ Request Body Parameters
121121
original source cluster blocks writes and the destination cluster
122122
accepts writes.
123123

124+
:gold:`IMPORTANT:` If you are migrating from a pre-6.0 source cluster,
125+
you cannot set ``enableUserWriteBlocking`` to ``true``.
126+
124127
To reverse sync, the ``enableUserWriteBlocking`` field must be set
125128
to ``true``. To allow the source cluster to accept writes again,
126129
for example after running migration tests, run the following
@@ -167,6 +170,14 @@ Request Body Parameters
167170

168171
* Reversible sync when ``buildIndexes`` is set to ``never``.
169172

173+
* Reversible sync with the embedded verifier. The
174+
verifier supports the initial forward direction of
175+
reversible sync. When you call the ``/reverse``
176+
endpoint it disables the verifier.
177+
178+
:gold:`IMPORTANT:` If you are migrating from a pre-6.0 source cluster,
179+
you cannot set ``reversible`` to ``true``.
180+
170181
For more information, see the :ref:`reverse <c2c-api-reverse>` endpoint.
171182

172183
Default value is ``false``.

source/reference/limitations.txt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ Sharded Clusters
117117
- Shards cannot be added or removed while syncing.
118118
- ``mongosync`` only syncs indexes that exist on all shards.
119119
- ``mongosync`` only syncs indexes that have consistent index
120-
specifications on all shards.
120+
specifications on all shards.
121121

122122
.. note::
123123

@@ -200,3 +200,15 @@ cluster.
200200

201201
.. include:: /includes/fact-verifier-limitations
202202

203+
.. _c2c-older-version-limitations:
204+
205+
Pre-6.0 Migrations
206+
------------------
207+
208+
Starting in 1.10, ``mongosync`` supports migrations from source clusters running
209+
MongoDB server versions older than 6.0. For information on supported migration
210+
paths, see :ref:`c2c-server-version-compatibility`.
211+
212+
The following limitations apply to pre-6.0 migrations:
213+
214+
.. include:: /includes/fact-older-version-limitations.rst

source/reference/permissions.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,12 @@ The Atlas permissions are:
2828

2929
.. include:: /includes/table-permissions-atlas.rst
3030

31+
.. _c2c-older-version-permissions:
32+
33+
Pre-6.0 Migrations
34+
------------------
35+
36+
- When migrating from a 4.4 source cluster, you must have
37+
:authrole:`clusterManager` permissions on the source cluster.
38+
39+
- Write blocking and reverse sync are not supported.

source/reference/supported-server-version.txt

Lines changed: 42 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -17,42 +17,63 @@ version limitations and requirements:
1717

1818
- .. include:: /includes/fact-partial-8.0-support.rst
1919

20-
- .. include:: /includes/fact-minimum-server-version-support.rst
20+
- Your source cluster must run one of the following major supported versions:
21+
22+
- 4.4 (*New in version 1.10.0*)
23+
- 5.0 (*New in version 1.10.0*)
24+
- 6.0
25+
- 7.0
2126

2227
- ``mongosync`` doesn't support MongoDB rapid releases, such as 6.1 or 6.2.
2328

24-
- .. include:: /includes/fact-minimum-fcv.rst
29+
The following table lists the minimum MongoDB server version requirements for
30+
clusters:
2531

26-
Synchronize Data Between Clusters Running Older MongoDB Server Versions
27-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
32+
.. list-table::
33+
:header-rows: 1
34+
:class: compatibility
35+
36+
* - Major Version
37+
- Patch Version
38+
- Minimum Feature Compatibility Version
39+
40+
* - 4.4
41+
- 4.4.23
42+
- 4.4
43+
44+
* - 5.0
45+
- 5.0.29
46+
- 5.0
2847

29-
.. include:: /includes/fact-minimum-versions.rst
48+
* - 6.0
49+
- 6.0.16
50+
- 6.0
3051

52+
* - 7.0
53+
- 7.0.9
54+
- 6.0
55+
56+
.. _c2c-sync-different-versions:
3157

3258
Synchronize Data Between Clusters with Different MongoDB Server Major Versions
33-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
59+
------------------------------------------------------------------------------
3460

3561
.. include:: /includes/cross-version-sync.rst
3662

37-
``mongosync`` supports syncs between the following source and
38-
destination MongoDB server versions.
63+
.. include:: /includes/fact-pre-6.0-migration.rst
3964

40-
.. list-table::
41-
:header-rows: 1
42-
:stub-columns: 1
43-
:widths: 40 30 30
65+
.. important::
66+
67+
``mongosync`` does not support migrations to pre-6.0 destination clusters.
4468

45-
* -
46-
- **6.0** Destination
47-
- **7.0** Destination
69+
``mongosync`` supports syncs between the following source and
70+
destination MongoDB server versions:
4871

49-
* - **6.0** Source
50-
- √
51-
- √
72+
.. include:: /includes/table-pre-6.0-compatibility.rst
5273

53-
* - **7.0** Source
54-
-
55-
- √
74+
.. seealso::
75+
76+
:ref:`Pre-6.0 Migration Limitations <c2c-older-version-limitations>`
5677

5778
.. _c2c-server-8.0-to-8.0:
5879

source/reference/verification/embedded.txt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,15 @@ Verify with Embedded Verifier
2222
of checks on the destination cluster to verify the sync of
2323
supported collections.
2424

25-
.. important::
26-
27-
.. include:: /includes/fact-verifier-unsupported
25+
.. note::
26+
27+
``mongosync`` reads using :readmode:`primary` read preference, so it
28+
preserves document field order from the source cluster's primary node. The
29+
embedded verifier also checks documents based on the source cluster’s primary
30+
node, but at a different time from when ``mongosync`` reads them. Because of
31+
this, in rare cases, discrepancies in document field order between the source
32+
cluster’s nodes can cause the embedded verifier to fail the migration, even
33+
if ``mongosync`` copied the documents correctly.
2834

2935
.. versionadded:: 1.9
3036

source/release-notes/1.10.txt

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,32 @@ Release Notes for mongosync 1.10
1919
This page describes changes and new features introduced in
2020
{+c2c-full-product-name+} 1.10.
2121

22-
1.10.0 Release
23-
--------------
22+
.. _c2c-older-version-support:
23+
24+
Older Version Support
25+
---------------------
26+
27+
.. include:: /includes/fact-pre-6.0-migration.rst
28+
29+
``mongosync`` now supports syncs between the following source and
30+
destination MongoDB server versions:
31+
32+
.. include:: /includes/table-pre-6.0-compatibility.rst
33+
34+
To learn more, see:
35+
36+
- :ref:`Pre-6.0 Migration Limitations <c2c-older-version-limitations>`.
37+
- :ref:`Pre-6.0 Migration Permissions <c2c-older-version-permissions>`.
38+
- :ref:`c2c-sync-different-versions`.
2439

2540
Upgrades to Embedded Verifier
26-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
41+
-----------------------------
42+
43+
.. include:: /includes/verify-reversible-migrations.rst
44+
45+
Minimum Supported Version
46+
-------------------------
47+
48+
.. include:: /includes/fact-version-compatibility.rst
2749

28-
- .. include:: /includes/verify-reversible-migrations.rst
50+
.. include:: /includes/migration-upgrade-recommendation.rst

source/reverse-sync.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ following parameters:
3535
For more information on limitations and requirements of reversing sync,
3636
see :ref:`c2c-api-reverse`.
3737

38+
.. important::
39+
40+
If you are migrating from a pre-6.0 source cluster, you cannot reverse sync.
41+
3842
Steps
3943
-----
4044

0 commit comments

Comments
 (0)