Skip to content

Commit 05bceeb

Browse files
committed
DOCSP-17295 document fCV downgrade considerations
1 parent 9643df6 commit 05bceeb

File tree

5 files changed

+224
-41
lines changed

5 files changed

+224
-41
lines changed

source/release-notes/5.0-compatibility.txt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -358,4 +358,11 @@ Some features in 5.0 require not just the 5.0 binaries but the
358358
features include:
359359

360360
- Creation of :ref:`time series collections
361-
<manual-timeseries-collection>`.
361+
<manual-timeseries-collection>` requires fCV set to 5.0+.
362+
363+
- Configuring Runtime Audit Filter Management requires fCV set to 5.0+.
364+
365+
- Usage of ``.`` and ``$`` in field names requires fCV set to 5.0+.
366+
367+
- :ref:`Resharding a collection <sharding-resharding>` requires fCV set
368+
to 5.0+.

source/release-notes/5.0-downgrade-replica-set.txt

Lines changed: 68 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -40,25 +40,71 @@ Prerequisites
4040

4141
To downgrade from |newversion| to |oldversion|, you must remove
4242
incompatible features that are persisted and/or update incompatible
43-
configuration settings.
43+
configuration settings. These include:
44+
45+
1. Cluster Default Read and Write Concerns
46+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
47+
48+
MongoDB 5.0 changed the default value for cluster-wide read and write
49+
concerns, and downgrading to MongoDB 4.4 might change those defaults
50+
back. Consider manually configuring your cluster's default read and
51+
write concern before downgrading:
52+
53+
- To manually configure a default value for a cluster's read or write
54+
concern, use the :dbcommand:`setDefaultRWConcern` command.
55+
56+
- If your cluster includes an :doc:`arbiter
57+
</core/replica-set-arbiter>`, and you had previously disabled
58+
``"Majority"`` read concern to prevent cache pressure in certain
59+
situations, you may want to configure
60+
:option:`--enableMajorityReadConcern false
61+
<mongod --enableMajorityReadConcern>` or
62+
:setting:`replication.enableMajorityReadConcern: false
63+
<replication.enableMajorityReadConcern>` once you downgrade.
64+
65+
2. Document Fields with ``.`` or ``$`` Characters
66+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
67+
68+
MongoDB 5.0 adds support for including the ``.`` or ``$`` characters in
69+
document field names. You must delete any documents containing field
70+
names that include the ``.`` or ``$`` characters before downgrading
71+
to MongoDB 4.4.
72+
73+
3. Slim-format Timezone Data Files
74+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
75+
76+
MongoDB 5.0 enables support for slim-format timezone data files. If
77+
using slim-format timezone data files in your deployment, as provided
78+
to MongoDB with the :option:`--timeZoneInfo <mongod --timeZoneInfo>`
79+
command line option or :setting:`processManagement.timeZoneInfo`
80+
configuration file setting, you must downgrade to MongoDB 4.4.7 or
81+
later, or else revert your timezone data files to use the previous
82+
non-slim-format data files.
4483

4584
.. |target| replace:: primary
4685

4786
.. _5.0-downgrade-feature-compatibility-rs:
4887

49-
1. Downgrade Feature Compatibility Version (fCV)
88+
4. Downgrade Feature Compatibility Version (fCV)
5089
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5190

52-
.. tip::
91+
First, verify the following:
5392

54-
- Ensure that no initial sync is in progress. Running
55-
:dbcommand:`setFeatureCompatibilityVersion` command while an
56-
initial sync is in progress will cause the initial sync to restart.
93+
- Ensure that no initial sync is in progress. Running
94+
:dbcommand:`setFeatureCompatibilityVersion` command while an
95+
initial sync is in progress will cause the initial sync to restart.
5796

58-
- Ensure that no replica set member is in :replstate:`ROLLBACK` or
59-
:replstate:`RECOVERING` state.
97+
- Ensure that no nodes have a ``newlyAdded`` field in their
98+
:doc:`replica set configuration </reference/replica-configuration>`.
99+
Use the :method:`rs.conf()` method on each node in your replica set to
100+
verify this. The ``newlyAdded`` only appears in a node's replica set
101+
configuration document during and shortly after an initial sync.
60102

61-
To downgrade the ``featureCompatibilityVersion`` of your replica set:
103+
- Ensure that no replica set member is in :replstate:`ROLLBACK` or
104+
:replstate:`RECOVERING` state.
105+
106+
Next, to downgrade the ``featureCompatibilityVersion`` of your replica
107+
set:
62108

63109
#. Connect a :binary:`~bin.mongo` shell to the |target|.
64110

@@ -84,7 +130,7 @@ To downgrade the ``featureCompatibilityVersion`` of your replica set:
84130
For more information on the returned ``featureCompatibilityVersion``
85131
value, see :ref:`view-fcv`.
86132

87-
2. Remove fCV |newversion| Persisted Features
133+
5. Remove fCV |newversion| Persisted Features
88134
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
89135

90136
The following steps are necessary only if fCV has ever been set to
@@ -93,17 +139,26 @@ The following steps are necessary only if fCV has ever been set to
93139
Remove all persisted |newversion| |features| that are incompatible with
94140
|oldversion|. These include:
95141

96-
- This list is forthcoming.
142+
Time-series Collections
143+
Remove all :ref:`time series collections
144+
<manual-timeseries-collection>`.
145+
146+
Runtime Audit Filter Management
147+
Disable runtime audit filter management by setting the
148+
``auditLog.runtimeConfiguration`` configuration file setting to
149+
``false``.
97150

98151
.. |binary| replace:: any replica set member
99152

100-
3. Remove |newversion| Features
153+
6. Remove |newversion| Features
101154
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
102155

103156
Remove all persisted features that use |newversion| features. These
104157
include but are not limited to:
105158

106-
- This list is forthcoming.
159+
- If any view definitions include 5.0 operators, such as
160+
:expression:`$dateAdd` or :expression:`$sampleRate`, they must be
161+
removed. See :ref:`5.0-rel-notes-new-agg-operators` for the full list.
107162

108163
Procedure
109164
---------

source/release-notes/5.0-downgrade-sharded-cluster.txt

Lines changed: 93 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -34,29 +34,84 @@ Prerequisites
3434

3535
To downgrade from |newversion| to |oldversion|, you must remove
3636
incompatible features that are persisted and/or update incompatible
37-
configuration settings.
37+
configuration settings. These include:
38+
39+
1. Cluster Default Read and Write Concerns
40+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
41+
42+
MongoDB 5.0 changed the default value for cluster-wide read and write
43+
concerns, and downgrading to MongoDB 4.4 might change those defaults
44+
back. Consider manually configuring your cluster's default read and
45+
write concern before downgrading:
46+
47+
- To manually configure a default value for a cluster's read or write
48+
concern, use the :dbcommand:`setDefaultRWConcern` command.
49+
50+
- If your cluster includes an :doc:`arbiter
51+
</core/replica-set-arbiter>`, and you had previously disabled
52+
``"Majority"`` read concern to prevent cache pressure in certain
53+
situations, you may want to configure
54+
:option:`--enableMajorityReadConcern false
55+
<mongod --enableMajorityReadConcern>` or
56+
:setting:`replication.enableMajorityReadConcern: false
57+
<replication.enableMajorityReadConcern>` once you downgrade.
58+
59+
2. Document Fields with ``.`` or ``$`` Characters
60+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
61+
62+
MongoDB 5.0 adds support for including the ``.`` or ``$`` characters in
63+
document field names. You must delete any documents containing field
64+
names that include the ``.`` or ``$`` characters before downgrading
65+
to MongoDB 4.4.
66+
67+
3. Slim-format Timezone Data Files
68+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69+
70+
MongoDB 5.0 enables support for slim-format timezone data files. If
71+
using slim-format timezone data files in your deployment, as provided
72+
to MongoDB with the :option:`--timeZoneInfo <mongod --timeZoneInfo>`
73+
command line option or :setting:`processManagement.timeZoneInfo`
74+
configuration file setting, you must downgrade to MongoDB 4.4.7 or
75+
later, or else revert your timezone data files to use the previous
76+
non-slim-format data files.
77+
78+
4. Resharding
79+
~~~~~~~~~~~~~
80+
81+
Ensure that any :ref:`resharding operations <sharding-resharding>` have
82+
successfully completed before attempting any downgrade procedure. If a
83+
recent resharding operation has failed due to a primary failover, you
84+
must first run the :dbcommand:`cleanupReshardCollection` command before
85+
downgrading the ``featureCompatibilityVersion`` of your sharded cluster.
86+
87+
If a resharding operation is still running while you downgrade the
88+
``featureCompatibilityVersion`` of your sharded cluster, the resharding
89+
operation will abort.
3890

39-
.. note::
91+
.. |target| replace:: :binary:`~bin.mongos` instance
4092

41-
If you ran a :ref:`resharding operation <sharding-resharding>` and a
42-
primary failover occurred during the resharding operation, you must
43-
run :dbcommand:`cleanupReshardCollection` before downgrading the
44-
``featureCompatibilityVersion`` of your sharded cluster.
93+
.. _5.0-downgrade-feature-compatibility-sharded-cluster:
4594

46-
If you started a :ref:`resharding operation <sharding-resharding>`,
47-
and it is still running while you downgrade the
48-
``featureCompatibilityVersion`` of your sharded cluster, the
49-
resharding operation will abort.
95+
5. Downgrade Feature Compatibility Version (fCV)
96+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5097

98+
First, verify the following:
5199

52-
.. |target| replace:: :binary:`~bin.mongos` instance
100+
- Ensure that no initial sync is in progress. Running
101+
:dbcommand:`setFeatureCompatibilityVersion` command while an
102+
initial sync is in progress will cause the initial sync to restart.
53103

54-
.. _5.0-downgrade-feature-compatibility-sharded-cluster:
104+
- Ensure that no nodes have a ``newlyAdded`` field in their
105+
:doc:`replica set configuration </reference/replica-configuration>`.
106+
Use the :method:`rs.conf()` method on each node in your sharded
107+
cluster to verify this. The ``newlyAdded`` only appears in a node's
108+
replica set configuration document during and shortly after an initial
109+
sync.
55110

56-
1. Downgrade Feature Compatibility Version (fCV)
57-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
111+
- Ensure that no replica set member is in :replstate:`ROLLBACK` or
112+
:replstate:`RECOVERING` state.
58113

59-
To downgrade the ``featureCompatibilityVersion`` of your sharded
114+
Next, to downgrade the ``featureCompatibilityVersion`` of your sharded
60115
cluster:
61116

62117
#. Connect a :binary:`~bin.mongo` shell to the |target|.
@@ -65,9 +120,16 @@ cluster:
65120

66121
.. note::
67122

68-
While :dbcommand:`setFeatureCompatibilityVersion` is running on
69-
the sharded cluster, chunk migrations, splits, and merges
70-
can fail with ``ConflictingOperationInProgress``.
123+
- While :dbcommand:`setFeatureCompatibilityVersion` is running on
124+
the sharded cluster, chunk migrations, splits, and merges can
125+
fail with ``ConflictingOperationInProgress``.
126+
127+
- If :dbcommand:`setFeatureCompatibilityVersion` fails with a
128+
``ManualInterventionRequired`` error, and the cluster has
129+
recently undergone a resharding operation that had failed due to
130+
an election, you must run the ``cleanupReshardCollection``
131+
command before attempting
132+
:dbcommand:`setFeatureCompatibilityVersion` again.
71133

72134
#. To ensure that all members of the sharded cluster reflect the
73135
updated ``featureCompatibilityVersion``, connect to each shard replica
@@ -97,7 +159,7 @@ cluster:
97159
For more information on the returned ``featureCompatibilityVersion``
98160
value, see :ref:`view-fcv`.
99161

100-
2. Remove fCV |newversion| Persisted Features
162+
6. Remove fCV |newversion| Persisted Features
101163
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
102164

103165
The following steps are necessary only if fCV has ever been set to
@@ -106,15 +168,24 @@ The following steps are necessary only if fCV has ever been set to
106168
Remove all persisted |newversion| |features| that are incompatible with
107169
|oldversion|. These include:
108170

109-
- This list is forthcoming.
171+
Time-series Collections
172+
Remove all :ref:`time series collections
173+
<manual-timeseries-collection>`.
174+
175+
Runtime Audit Filter Management
176+
Disable runtime audit filter management by setting the
177+
``auditLog.runtimeConfiguration`` configuration file setting to
178+
``false``.
110179

111-
3. Remove |newversion| Features
180+
7. Remove |newversion| Features
112181
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
113182

114183
Remove all persisted features that use |newversion| features. These
115184
include but are not limited to:
116185

117-
- This list is forthcoming.
186+
- If any view definitions include 5.0 operators, such as
187+
:expression:`$dateAdd` or :expression:`$sampleRate`, they must be
188+
removed. See :ref:`5.0-rel-notes-new-agg-operators` for the full list.
118189

119190
.. |binary| replace:: any :binary:`~bin.mongod`/:binary:`~bin.mongos` instance
120191

source/release-notes/5.0-downgrade-standalone.txt

Lines changed: 53 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,50 @@ To downgrade from |newversion| to |oldversion|, you must remove
4141
incompatible features that are persisted and/or update incompatible
4242
configuration settings. These include:
4343

44+
1. Cluster Default Read and Write Concerns
45+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
46+
47+
MongoDB 5.0 changed the default value for cluster-wide read and write
48+
concerns, and downgrading to MongoDB 4.4 might change those defaults
49+
back. Consider manually configuring your cluster's default read and
50+
write concern before downgrading:
51+
52+
- To manually configure a default value for a cluster's read or write
53+
concern, use the :dbcommand:`setDefaultRWConcern` command.
54+
55+
- If your cluster includes an :doc:`arbiter
56+
</core/replica-set-arbiter>`, and you had previously disabled
57+
``"Majority"`` read concern to prevent cache pressure in certain
58+
situations, you may want to configure
59+
:option:`--enableMajorityReadConcern false
60+
<mongod --enableMajorityReadConcern>` or
61+
:setting:`replication.enableMajorityReadConcern: false
62+
<replication.enableMajorityReadConcern>` once you downgrade.
63+
64+
2. Document Fields with ``.`` or ``$`` Characters
65+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
66+
67+
MongoDB 5.0 adds support for including the ``.`` or ``$`` characters in
68+
document field names. You must delete any documents containing field
69+
names that include the ``.`` or ``$`` characters before downgrading
70+
to MongoDB 4.4.
71+
72+
3. Slim-format Timezone Data Files
73+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
74+
75+
MongoDB 5.0 enables support for slim-format timezone data files. If
76+
using slim-format timezone data files in your deployment, as provided
77+
to MongoDB with the :option:`--timeZoneInfo <mongod --timeZoneInfo>`
78+
command line option or :setting:`processManagement.timeZoneInfo`
79+
configuration file setting, you must downgrade to MongoDB 4.4.7 or
80+
later, or else revert your timezone data files to use the previous
81+
non-slim-format data files.
82+
4483
.. |target| replace:: :binary:`~bin.mongod` instance
4584

4685
.. _5.0-downgrade-feature-compatibility-standalone:
4786

48-
1. Downgrade Feature Compatibility Version (fCV)
87+
4. Downgrade Feature Compatibility Version (fCV)
4988
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5089

5190
To downgrade the ``featureCompatibilityVersion`` of your standalone:
@@ -54,7 +93,7 @@ To downgrade the ``featureCompatibilityVersion`` of your standalone:
5493

5594
#. .. include:: /includes/5.0-downgrade-fcv.rst
5695

57-
2. Remove fCV |newversion| Persisted Features
96+
5. Remove fCV |newversion| Persisted Features
5897
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5998

6099
The following steps are necessary only if fCV has ever been set to
@@ -63,17 +102,26 @@ The following steps are necessary only if fCV has ever been set to
63102
Remove all persisted |newversion| |features| that are incompatible with
64103
|oldversion|. These include:
65104

66-
- This list is forthcoming.
105+
Time-series Collections
106+
Remove all :ref:`time series collections
107+
<manual-timeseries-collection>`.
108+
109+
Runtime Audit Filter Management
110+
Disable runtime audit filter management by setting the
111+
``auditLog.runtimeConfiguration`` configuration file setting to
112+
``false``.
67113

68114
.. |binary| replace:: the :binary:`~bin.mongod` instance
69115

70-
3. Remove |newversion| Features
116+
6. Remove |newversion| Features
71117
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
72118

73119
Remove all persisted features that use |newversion| features. These
74120
include but are not limited to:
75121

76-
- This list is forthcoming.
122+
- If any view definitions include 5.0 operators, such as
123+
:expression:`$dateAdd` or :expression:`$sampleRate`, they must be
124+
removed. See :ref:`5.0-rel-notes-new-agg-operators` for the full list.
77125

78126
Procedure
79127
---------

source/release-notes/5.0.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ usage for your data and indexes.
2626
Aggregation
2727
-----------
2828

29+
.. _5.0-rel-notes-new-agg-operators:
30+
2931
New Aggregation Operators
3032
~~~~~~~~~~~~~~~~~~~~~~~~~
3133

0 commit comments

Comments
 (0)