Skip to content

Commit 91de38e

Browse files
authored
DRIVERS-2885: Update wire version feature list (#1607)
1 parent 3ebc256 commit 91de38e

File tree

4 files changed

+38
-88
lines changed

4 files changed

+38
-88
lines changed

source/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
- [Server Monitoring](server-discovery-and-monitoring/server-monitoring.md)
3636
- [Server Selection](server-selection/server-selection.md)
3737
- [Server Selection Test Plan](server-selection/server-selection-tests.md)
38+
- [Server Wire version and Feature List](./wireversion-featurelist.md)
3839
- [Sessions Specification](sessions/driver-sessions.md)
3940
- [Snapshot Reads Specification](sessions/snapshot-sessions.md)
4041
- [Transactions Specification](transactions/transactions.md)

source/retryable-reads/retryable-reads.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ the defined name but MAY deviate to comply with their existing conventions.
8484

8585
Drivers MUST verify server eligibility by ensuring that `maxWireVersion` is at least 6 because retryable reads require a
8686
MongoDB 3.6 standalone, replica set or shard cluster, MongoDB 3.6 server wire version is 6 as defined in the
87-
[Server Wire version and Feature List specification](../wireversion-featurelist.rst).
87+
[Server Wire version and Feature List specification](../wireversion-featurelist.md).
8888

8989
The minimum server version is 3.6 because
9090

source/wireversion-featurelist.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Server Wire version and Feature List
2+
3+
| Server version | Wire version | Feature List |
4+
| -------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
5+
| 2.6 | 1 | <p>Aggregation cursor</p> <p>Auth commands</p> |
6+
| 2.6 | 2 | <p>Write commands (insert/update/delete)</p> <p>Aggregation $out pipeline operator</p> |
7+
| 3.0 | 3 | <p>listCollections</p> <p>listIndexes</p> <p>SCRAM-SHA-1</p> <p>explain command</p> |
8+
| 3.2 | 4 | <p>(find/getMore/killCursors) commands</p> <p>currentOp command</p> <p>fsyncUnlock command</p> <p>findAndModify take write concern</p> <p>Commands take read concern</p> <p>Document-level validation</p> <p>explain command supports distinct and findAndModify</p> |
9+
| 3.4 | 5 | <p>Commands take write concern</p> <p>Commands take collation</p> |
10+
| 3.6 | 6 | <p>Supports OP_MSG</p> <p>Collection-level ChangeStream support</p> <p>Retryable Writes</p> <p>Causally Consistent Reads</p> <p>Logical Sessions</p> <p>update "arrayFilters" option</p> |
11+
| 4.0 | 7 | <p>ReplicaSet transactions</p> <p>Database and cluster-level change streams and startAtOperationTime option</p> |
12+
| 4.2 | 8 | <p>Sharded transactions</p> <p>Aggregation $merge pipeline operator</p> <p>update "hint" option</p> |
13+
| 4.4 | 9 | <p>Streaming protocol for SDAM</p> <p>ResumableChangeStreamError error label</p> <p>delete "hint" option</p> <p>findAndModify "hint" option</p> <p>createIndexes "commitQuorum" option</p> |
14+
| 5.0 | 13 | $out and $merge on secondaries (technically FCV 4.4+) |
15+
| 5.1 | 14 | |
16+
| 5.2 | 15 | |
17+
| 5.3 | 16 | |
18+
| 6.0 | 17 | <p>Support for Partial Indexes</p><p>Sharded Time Series Collections</p><p>FCV set to 5.0</p> |
19+
| 6.1 | 18 | <p>Update Perl Compatible Regular Expressions version to PCRE2</p><p>Add `*UCP` option for regex queries</p> |
20+
| 6.2 | 19 | <p>Collection validation ensures BSON documents conform to BSON spec</p><p>Collection validation checks time series collections for internal consistency</p> |
21+
| 7.0 | 21 | <p>Atlas Search Index Management</p><p>`$currentOp` aggregation Metrics</p><p>Compound Wildcard Indexes</p><p>Support large change stream events via `$changeStreamSplitLargeEvent` stage</p><p>`serverStatus` output gets new fields</p> <p>Slot Based Query Execution</p> |
22+
| 7.1 | 22 | <p>Improved Index Builds</p><p>Exhaust Cursors Enabled for Sharded Clusters</p><p>New Sharding Statistics for Chunk Migrations</p><p>Self-Managed Backups of Sharded Clusters |
23+
| 7.2 | 23 | <p>Database Validation on `mongos` Aggregation Queries</p><p>`serverStatus` Metrics</p><p>Default Chunks Per Shard</p> |
24+
| 7.3 | 24 | <p>Compaction Improvements</p><p>New `serverStatus` metrics</p> |
25+
| 8.0 | 25 | <p>Range Encryption GA</p><p>OIDC authentication mechanism</p><p>New `bulkWrite` command</p><p>`snapshot` read concern on capped collections</p> |
26+
27+
In server versions 5.0 and earlier, the wire version was defined as a numeric literal in
28+
[src/mongo/db/wire_version.h](https://github.com/mongodb/mongo/blob/master/src/mongo/db/wire_version.h). Since server
29+
version 5.1 ([SERVER-58346](https://jira.mongodb.org/browse/SERVER-58346)), the wire version is derived from the number
30+
of releases since 4.0 (using
31+
[src/mongo/util/version/releases.h.tpl](https://github.com/mongodb/mongo/blob/master/src/mongo/util/version/releases.h.tpl)
32+
and
33+
[src/mongo/util/version/releases.yml](https://github.com/mongodb/mongo/blob/master/src/mongo/util/version/releases.yml)).

source/wireversion-featurelist.rst

Lines changed: 3 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -1,88 +1,4 @@
1-
====================================
2-
Server Wire version and Feature List
3-
====================================
41

5-
.. list-table::
6-
:header-rows: 1
7-
8-
* - Server version
9-
- Wire version
10-
- Feature List
11-
12-
* - 2.6
13-
- 1
14-
- | Aggregation cursor
15-
| Auth commands
16-
17-
* - 2.6
18-
- 2
19-
- | Write commands (insert/update/delete)
20-
| Aggregation $out pipeline operator
21-
22-
* - 3.0
23-
- 3
24-
- | listCollections
25-
| listIndexes
26-
| SCRAM-SHA-1
27-
| explain command
28-
29-
* - 3.2
30-
- 4
31-
- | (find/getMore/killCursors) commands
32-
| currentOp command
33-
| fsyncUnlock command
34-
| findAndModify take write concern
35-
| Commands take read concern
36-
| Document-level validation
37-
| explain command supports distinct and findAndModify
38-
39-
* - 3.4
40-
- 5
41-
- | Commands take write concern
42-
| Commands take collation
43-
44-
* - 3.6
45-
- 6
46-
- | Supports OP_MSG
47-
| Collection-level ChangeStream support
48-
| Retryable Writes
49-
| Causally Consistent Reads
50-
| Logical Sessions
51-
| update "arrayFilters" option
52-
53-
* - 4.0
54-
- 7
55-
- | ReplicaSet transactions
56-
| Database and cluster-level change streams and startAtOperationTime option
57-
58-
* - 4.2
59-
- 8
60-
- | Sharded transactions
61-
| Aggregation $merge pipeline operator
62-
| update "hint" option
63-
64-
* - 4.4
65-
- 9
66-
- | Streaming protocol for SDAM
67-
| ResumableChangeStreamError error label
68-
| delete "hint" option
69-
| findAndModify "hint" option
70-
| createIndexes "commitQuorum" option
71-
72-
* - 5.0
73-
- 13
74-
- | $out and $merge on secondaries (technically FCV 4.4+)
75-
76-
* - 5.1
77-
- 14
78-
- |
79-
80-
* - 5.2
81-
- 15
82-
- |
83-
84-
* - 5.3
85-
- 16
86-
- |
87-
88-
In server versions 5.0 and earlier, the wire version was defined as a numeric literal in `src/mongo/db/wire_version.h <https://github.com/mongodb/mongo/blob/master/src/mongo/db/wire_version.h>`_. Since server version 5.1 (`SERVER-58346 <https://jira.mongodb.org/browse/SERVER-58346>`_), the wire version is derived from the number of releases since 4.0 (using `src/mongo/util/version/releases.h.tpl <https://github.com/mongodb/mongo/blob/master/src/mongo/util/version/releases.h.tpl>`_ and `src/mongo/util/version/releases.yml <https://github.com/mongodb/mongo/blob/master/src/mongo/util/version/releases.yml>`_).
2+
.. note::
3+
This specification has been converted to Markdown and renamed to
4+
`wireversion-featurelist.md <wireversion-featurelist.md>`_.

0 commit comments

Comments
 (0)