Skip to content

Commit 13a2099

Browse files
Merge pull request #925 from 10gen/master
Merge master into v6.0
2 parents 275b3cf + ddacb3e commit 13a2099

File tree

66 files changed

+2180
-809
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+2180
-809
lines changed

.evergreen/evergreen.yml

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Evergreen Project Config
2+
3+
# When a task that used to pass starts to fail
4+
# Go through all versions that may have been skipped to detect
5+
# when the task started failing
6+
stepback: true
7+
8+
# Mark a failure as a system/bootstrap failure (purple box) rather then a task
9+
# failure by default.
10+
# Actual testing tasks are marked with `type: test`
11+
command_type: system
12+
13+
# Protect ourself against rogue test case, or curl gone wild, that runs forever
14+
# 12 minutes is the longest we'll ever run
15+
exec_timeout_secs: 3600 # 12 minutes is the longest we'll ever run
16+
17+
# What to do when evergreen hits the timeout (`post:` tasks are run automatically)
18+
timeout:
19+
- command: shell.exec
20+
params:
21+
script: |
22+
ls -la
23+
functions:
24+
"fetch source":
25+
- command: git.get_project
26+
params:
27+
directory: docs-ecosystem
28+
29+
30+
"install checker tool":
31+
- command: shell.exec
32+
type: system
33+
params:
34+
shell: bash
35+
working_dir: docs-ecosystem
36+
script: |
37+
export GOPATH=$(dirname $(dirname $(dirname `pwd`)))
38+
export GOROOT='/opt/golang/go1.16'
39+
export PATH=$GOROOT/bin:$GOPATH/bin/:$PATH
40+
go install github.com/terakilobyte/checker@latest
41+
"run checker":
42+
- command: shell.exec
43+
type: test
44+
params:
45+
shell: bash
46+
working_dir: docs-ecosystem
47+
script: |
48+
export GOPATH=$(dirname $(dirname $(dirname `pwd`)))
49+
export GOROOT='/opt/golang/go1.16'
50+
export PATH=$GOROOT/bin:$GOPATH/bin/:$PATH
51+
git diff --name-only HEAD master | tr "\n" "," | xargs checker --path . --changes
52+
pre:
53+
- func: "fetch source"
54+
- func: "install checker tool"
55+
56+
tasks:
57+
58+
- name: check
59+
commands:
60+
- func: "run checker"
61+
62+
buildvariants:
63+
64+
- name: ubuntu2004
65+
display_name: Ubuntu 20.04
66+
run_on: [ ubuntu2004-large ]
67+
tasks:
68+
- name: check

Makefile

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -128,19 +128,20 @@ examples:
128128
curl -SfL https://raw.githubusercontent.com/mongodb/mongo-java-driver/master/driver-sync/src/examples/documentation/CausalConsistencyExamples.java -o ${DRIVERS_PATH}/CausalConsistencyExamples.java
129129

130130
# node
131-
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/master/test/examples/change_streams.js -o ${DRIVERS_PATH}/node_changestreams.js
132-
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/master/test/examples/array_filters.js -o ${DRIVERS_PATH}/node_array_filters.js
133-
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/master/test/examples/causal_consistency.js -o ${DRIVERS_PATH}/node_causal_consistency.js
134-
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/master/test/examples/insert.js -o ${DRIVERS_PATH}/node_insert.js
135-
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/master/test/examples/project_fields_from_query_results.js -o ${DRIVERS_PATH}/node_project.js
136-
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/master/test/examples/query.js -o ${DRIVERS_PATH}/node_query.js
137-
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/master/test/examples/query_embedded_documents.js -o ${DRIVERS_PATH}/node_query_embedded_documents.js
138-
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/master/test/examples/query_arrays.js -o ${DRIVERS_PATH}/node_query_arrays.js
139-
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/master/test/examples/query_array_of_documents.js -o ${DRIVERS_PATH}/node_query_array_of_documents.js
140-
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/master/test/examples/query_for_null_fields.js -o ${DRIVERS_PATH}/node_query_for_null_fields.js
141-
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/master/test/examples/remove_documents.js -o ${DRIVERS_PATH}/node_remove.js
142-
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/master/test/examples/transactions.js -o ${DRIVERS_PATH}/node_transactions.js
143-
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/master/test/examples/update_documents.js -o ${DRIVERS_PATH}/node_update.js
131+
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/main/test/integration/node-specific/examples/change_streams.test.js -o ${DRIVERS_PATH}/node_changestreams.js
132+
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/main/test/integration/node-specific/examples/array_filters.test.js -o ${DRIVERS_PATH}/node_array_filters.js
133+
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/main/test/integration/node-specific/examples/causal_consistency.test.js -o ${DRIVERS_PATH}/node_causal_consistency.js
134+
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/main/test/integration/node-specific/examples/insert.test.js -o ${DRIVERS_PATH}/node_insert.js
135+
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/main/test/integration/node-specific/examples/project_fields_from_query_results.test.js -o ${DRIVERS_PATH}/node_project.js
136+
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/main/test/integration/node-specific/examples/query.test.js -o ${DRIVERS_PATH}/node_query.js
137+
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/main/test/integration/node-specific/examples/query_embedded_documents.test.js -o ${DRIVERS_PATH}/node_query_embedded_documents.js
138+
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/main/test/integration/node-specific/examples/query_arrays.test.js -o ${DRIVERS_PATH}/node_query_arrays.js
139+
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/main/test/integration/node-specific/examples/query_array_of_documents.test.js -o ${DRIVERS_PATH}/node_query_array_of_documents.js
140+
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/main/test/integration/node-specific/examples/query_for_null_fields.test.js -o ${DRIVERS_PATH}/node_query_for_null_fields.js
141+
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/main/test/integration/node-specific/examples/remove_documents.test.js -o ${DRIVERS_PATH}/node_remove.js
142+
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/main/test/integration/node-specific/examples/transactions.test.js -o ${DRIVERS_PATH}/node_transactions.js
143+
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/main/test/integration/node-specific/examples/update_documents.test.js -o ${DRIVERS_PATH}/node_update.js
144+
curl -SfL https://raw.githubusercontent.com/mongodb/node-mongodb-native/4.0/test/functional/examples/versioned_api.js -o ${DRIVERS_PATH}/node_versioned_api.js
144145

145146
# ruby
146147
curl -SfL https://raw.githubusercontent.com/mongodb/mongo-ruby-driver/master/spec/integration/shell_examples_spec.rb -o ${DRIVERS_PATH}/shell_examples_spec.rb

config/changelog_conf.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ groups:
1313
- Querying
1414
- Query Execution
1515
- Query Language
16+
- Query Planning
1617
- Indexing
1718
- Index Maintenance
1819
- Geo
@@ -44,11 +45,13 @@ groups:
4445
- Shell
4546
- Usability
4647
- HTTP Console
48+
- Client-side Field-level Encryption
4749
"Build and Packaging":
4850
- Build
4951
- Build/compile
5052
- Packaging
5153
- Mobile
54+
- Change streams
5255
"Internals":
5356
- Testing
5457
- Python tests

snooty.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ toc_landing_pages = [
1919
"/administration/backup-sharded-clusters",
2020
"/administration/configuration-and-maintenance",
2121
"/administration/connection-pool-overview",
22+
"/administration/health-managers",
2223
"/administration/install-community",
2324
"/administration/install-enterprise-linux",
2425
"/administration/install-enterprise",

source/administration/analyzing-mongodb-performance.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,4 +262,5 @@ analyzing or debugging issues with support from MongoDB Inc. engineers.
262262
/administration/connection-pool-overview
263263
/tutorial/manage-the-database-profiler
264264
/tutorial/transparent-huge-pages
265+
/administration/health-managers
265266
/reference/ulimit

source/administration/change-streams-production-recommendations.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,3 +99,7 @@ Change Stream Optimization
9999

100100
.. include:: /includes/change-streams-optimization.rst
101101

102+
Change Streams and Orphan Documents
103+
-----------------------------------
104+
105+
.. include:: /includes/change-streams-and-orphans.rst
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
.. _health-managers-overview:
2+
3+
.. include:: /includes/health-manager-short-names.rst
4+
5+
==================================================
6+
Manage Sharded Cluster Health with Health Managers
7+
==================================================
8+
9+
.. default-domain:: mongodb
10+
11+
.. contents:: On this page
12+
:local:
13+
:backlinks: none
14+
:depth: 1
15+
:class: singlecol
16+
17+
This document describes how to use |HMS| to monitor and manage sharded
18+
cluster health issues.
19+
20+
Overview
21+
--------
22+
23+
A |HM| runs health checks on a :term:`health manager facet`
24+
at a specified :ref:`intensity level
25+
<health-managers-intensity-levels>`. |HM| checks
26+
run at specified time intervals. A |HM| can be configured to
27+
move a failing :ref:`mongos <mongos>` out of a cluster automatically.
28+
:ref:`Progress Monitor <health-managers-progress-monitor>` ensures
29+
that |HM| checks do not become stuck or unresponsive.
30+
31+
.. _health-managers-facets:
32+
33+
Health Manager Facets
34+
~~~~~~~~~~~~~~~~~~~~~
35+
36+
The following table shows the available |HM| facets:
37+
38+
.. include:: /includes/fact-health-manager-facets.rst
39+
40+
.. _health-managers-intensity-levels:
41+
42+
Health Manager Intensity Levels
43+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
44+
45+
The following table shows the available |HM| intensity levels:
46+
47+
.. include:: /includes/fact-health-manager-intensities.rst
48+
49+
.. _health-managers-active-fault:
50+
51+
Active Fault Duration
52+
---------------------
53+
54+
When a failure is detected and the |HM| intensity level
55+
is set to ``critical``, the |HM| waits the amount of time specified by
56+
:parameter:`activeFaultDurationSecs` before stopping and moving the
57+
:ref:`mongos <mongos>` out of the cluster automatically.
58+
59+
.. _health-managers-progress-monitor:
60+
61+
Progress Monitor
62+
----------------
63+
64+
.. include:: /includes/fact-progressMonitor.rst
65+
66+
``progressMonitor`` Fields
67+
~~~~~~~~~~~~~~~~~~~~~~~~~~
68+
69+
.. include:: /includes/fact-progress-monitor-fields.rst
70+
71+
Examples
72+
--------
73+
74+
The following examples show how |HMS| can be configured. For
75+
information on |HM| parameters, see :ref:`health-manager-parameters`.
76+
77+
Intensity
78+
~~~~~~~~~
79+
80+
.. include:: /includes/example-healthMonitoringIntensities.rst
81+
82+
.. include:: /includes/fact-healthMonitoringIntensities-values-array.rst
83+
84+
See :parameter:`healthMonitoringIntensities` for details.
85+
86+
Intervals
87+
~~~~~~~~~
88+
89+
.. include:: /includes/example-healthMonitoringIntervals.rst
90+
91+
.. include:: /includes/fact-healthMonitoringIntervals-values-array.rst
92+
93+
See :parameter:`healthMonitoringIntervals` for details.
94+
95+
Active Fault Duration
96+
~~~~~~~~~~~~~~~~~~~~~
97+
98+
.. include:: /includes/example-activeFaultDurationSecs.rst
99+
100+
See :parameter:`activeFaultDurationSecs` for details.
101+
102+
Progress Monitor
103+
~~~~~~~~~~~~~~~~
104+
105+
.. include:: /includes/fact-progressMonitor.rst
106+
107+
.. include:: /includes/example-progress-monitor.rst
108+
109+
See :parameter:`progressMonitor` for details.

source/changeStreams.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1045,6 +1045,11 @@ versions, change streams opened on a single collection
10451045
(:method:`db.collection.watch()`) would inherit that collection's
10461046
default collation.
10471047

1048+
Change Streams and Orphan Documents
1049+
-----------------------------------
1050+
1051+
.. include:: /includes/change-streams-and-orphans.rst
1052+
10481053
.. toctree::
10491054
:titlesonly:
10501055
:hidden:

source/core/distributed-queries.txt

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,8 @@ Read operations from secondary members of replica sets may not reflect
3838
the current state of the primary. Read preferences that direct read
3939
operations to different servers may result in non-monotonic reads.
4040

41-
.. versionchanged:: 3.6
42-
43-
Starting in MongoDB 3.6, clients can use :ref:`causally consistent
44-
<causal-consistency>` sessions, which provides various guarantees,
45-
including monotonic reads.
41+
Clients can use :ref:`causally consistent <causal-consistency>`
42+
sessions, which provides various guarantees including monotonic reads.
4643

4744
You can configure the read preference on a per-connection or
4845
per-operation basis. For more information on read preference or on the
@@ -67,7 +64,6 @@ For more information on replica sets and write operations, see
6764
:doc:`/replication` and
6865
:doc:`/reference/write-concern`.
6966

70-
7167
.. _read-operations-sharded-clusters:
7268

7369
Read Operations to Sharded Clusters
@@ -104,10 +100,7 @@ replica sets may not reflect the current state of the primary. Read
104100
preferences that direct read operations to different servers may result
105101
in non-monotonic reads.
106102

107-
108103
.. note::
109-
110-
Starting in MongoDB 3.6,
111104

112105
- Clients can use :ref:`causally consistent <causal-consistency>`
113106
sessions, which provides various guarantees, including monotonic
@@ -164,6 +157,9 @@ For more information, see :doc:`/sharding` and
164157

165158
:ref:`retryable-writes`
166159

160+
Change Streams and Orphan Documents
161+
-----------------------------------
167162

163+
.. include:: /includes/change-streams-and-orphans.rst
168164

169165
.. _read-operations-connection-pooling:

source/core/security-automatic-client-side-encryption.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ Server-Side Field Level Encryption Enforcement
103103
----------------------------------------------
104104

105105
Starting in MongoDB 4.2, the server supports using
106-
:doc:`schema validation </core/schema-validation>` to enforce encryption
106+
:ref:`schema validation <schema-validation-overview>` to enforce encryption
107107
of specific fields in a collection. Clients performing
108108
:ref:`automatic client-side field level
109109
encryption <field-level-encryption-json-schema>` have specific behavior
@@ -138,4 +138,4 @@ encryption enforcement, see
138138

139139
/reference/security-client-side-automatic-json-schema.txt
140140
/reference/security-client-side-query-aggregation-support.txt
141-
/reference/security-client-side-encryption-appendix.txt
141+
/reference/security-client-side-encryption-appendix.txt

source/core/security-client-side-encryption-key-management.txt

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
.. _manual-manage-cmk-and-dek:
2+
13
=============================================
24
Master Key and Data Encryption Key Management
35
=============================================
@@ -20,8 +22,7 @@ Supported Key Management Services
2022
Client-side field level encryption requires a Key Management Service
2123
(KMS) for accessing a Customer Master Key (CMK). MongoDB automatically
2224
encrypts data encryption keys using the specified CMK during
23-
:doc:`data encryption key creation
24-
</reference/method/KeyVault.createKey>`.
25+
:ref:`data encryption key creation <keyvault-createkey-method>`.
2526

2627
Deleting the CMK renders all data encryption keys encrypted with that
2728
CMK as permanently unreadable, which in turn renders all values
@@ -97,7 +98,7 @@ Key must have at least one policy with the following actions:
9798
}
9899

99100
For complete documentation on data encryption key management using AWS
100-
KMS, see :doc:`/tutorial/manage-client-side-encryption-data-keys` and
101+
KMS, see :ref:`Manage Data Encryption Keys <manual-manage-dek>` and
101102
select the "Amazon Web Services KMS" tab.
102103

103104
.. _field-level-encryption-azure-keyvault:
@@ -137,7 +138,7 @@ ability to perform the following actions:
137138

138139
For complete documentation on data encryption key management using
139140
Azure Key Vault, see
140-
:doc:`/tutorial/manage-client-side-encryption-data-keys` and select the
141+
:ref:`Manage Data Encryption Keys <manual-manage-dek>` and select the
141142
"Azure Key Vault" tab.
142143

143144
.. _field-level-encryption-gcp-kms:
@@ -174,7 +175,7 @@ or can be included in a
174175

175176
For complete documentation on data encryption key management using
176177
Google Cloud KMS, see
177-
:doc:`/tutorial/manage-client-side-encryption-data-keys` and select the
178+
:ref:`Manage Data Encryption Keys <manual-manage-dek>` and select the
178179
"Google Cloud KMS" tab.
179180

180181
.. _field-level-encryption-local-kms:
@@ -188,7 +189,7 @@ be a 96-byte long string.
188189

189190
For complete documentation on data encryption key management using a
190191
locally managed key, see
191-
:doc:`/tutorial/manage-client-side-encryption-data-keys` and select the
192+
:ref:`Manage Data Encryption Keys <manual-manage-dek>` and select the
192193
"Local Keyfile" tab.
193194

194195
.. _field-level-encryption-keyvault:
@@ -273,10 +274,10 @@ index does not exist, applications *must* create it prior to performing
273274
data encryption key management.
274275

275276
For complete documentation on data encryption key management, see
276-
:doc:`/tutorial/manage-client-side-encryption-data-keys`.
277+
:ref:`Manage Data Encryption Keys <manual-manage-dek>`.
277278

278279
.. toctree::
279280
:titlesonly:
280281
:hidden:
281282

282-
/tutorial/manage-client-side-encryption-data-keys.txt
283+
/tutorial/manage-client-side-encryption-data-keys.txt

0 commit comments

Comments
 (0)