Skip to content

Commit 4401823

Browse files
Cleaned feature branch
1 parent 0552146 commit 4401823

File tree

3 files changed

+91
-42
lines changed

3 files changed

+91
-42
lines changed

snooty.toml

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,11 @@ fts = "Atlas Search"
256256
# In Use Encryption Constants
257257
csfle = "Client-Side Field Level Encryption"
258258
csfle-abbrev = "CSFLE"
259+
qe = "Queryable Encryption"
260+
qe-abbr = ":abbr:`QE (Queryable Encryption)`"
261+
qe-preview = "{+qe+} Public Preview"
262+
qe-framework = "{+qe+} framework"
263+
qe-equality-ga = "{+qe-framework+} with equality search"
259264
in-use-doc = "document with encrypted fields"
260265
in-use-doc-title = "Document with Encrypted Fields"
261266
in-use-docs = "documents with encrypted fields"
@@ -289,8 +294,6 @@ libmongocrypt-version = "1.8"
289294
mongodb-crypt-version = "1.7.3"
290295
sample-app-url-csfle = "https://github.com/mongodb-university/docs-in-use-encryption-examples/tree/main/csfle"
291296
sample-app-url-qe = "https://github.com/mongodb-university/docs-in-use-encryption-examples/tree/main/queryable-encryption"
292-
qe = "Queryable Encryption"
293-
qe-abbr = ":abbr:`QE (Queryable Encryption)`"
294297
enc-fields-map = "encrypted fields map"
295298
enc-fields-map-title = "Encrypted Fields Map"
296299
shared-library = "Automatic Encryption Shared Library"
@@ -328,23 +331,21 @@ targets = [
328331
"core/queryable-encryption/*/*.txt",
329332
]
330333

331-
variant = "danger"
334+
variant = "warning"
332335
value = """
333-
Queryable Encryption is in Public Preview and available for \
334-
evaluation purposes. Public Preview is not recommended for \
335-
production deployments as breaking changes may be introduced. \
336-
To learn more about the Preview please see the \
337-
`Queryable Encryption Preview <https://www.mongodb.com/blog/post/mongodb-releases-queryable-encryption-preview/>`__ \
338-
blog post.
336+
{+qe-equality-ga+} is generally available (GA) in \
337+
MongoDB 7.0 and later. Data encrypted using the {+qe-preview+} \
338+
from earlier versions is incompatible with the GA. \
339+
For more information, see :ref:`7.0-compatibility`.
339340
"""
340341

341342
[[banners]]
342343
targets = ["core/csfle.txt", "core/csfle/*.txt", "core/csfle/*/*.txt"]
343344

344345
variant = "tip"
345346
value = """
346-
The next-generation Queryable Encryption feature is now in Public Preview. \
347-
To learn more about Queryable Encryption, see :ref:`qe-manual-feature-qe`.
347+
{+qe-equality-ga+} is now available. \
348+
To learn more about {+qe+}, see :ref:`qe-manual-feature-qe`.
348349
"""
349350

350351
[bundle]

source/core/queryable-encryption/fundamentals/manage-collections.txt

Lines changed: 28 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,12 @@ Encrypted Collection Management
1212
:depth: 2
1313
:class: singlecol
1414

15-
In this guide, you can learn how to manage your encrypted collections,
16-
and the storage and write costs of {+qe+}.
15+
Every encrypted field in a collection adds writes to insert,
16+
update, and delete operations. It also requires additional storage,
17+
since MongoDB maintains an index of encrypted fields. This section
18+
lists the writes per operation and explains how to compact encrypted
19+
collection indexes, so that you can plan accordingly to minimize write
20+
and storage costs.
1721

1822
Overview
1923
--------
@@ -24,9 +28,9 @@ fields.
2428

2529
With {+qe+}, a given plaintext value always encrypts to a different
2630
ciphertext, while still remaining queryable. To enable
27-
this functionality, {+qe+} uses four data structures:
31+
this functionality, {+qe+} uses three data structures:
2832

29-
- Three metadata collections
33+
- Two metadata collections
3034
- A field in every document in the encrypted collection called ``__safeContent__``
3135

3236
.. important::
@@ -37,11 +41,10 @@ this functionality, {+qe+} uses four data structures:
3741
Metadata Collections
3842
--------------------
3943

40-
When you create an encrypted collection using {+qe+}, MongoDB creates three
44+
When you create an encrypted collection, MongoDB creates two
4145
metadata collections:
4246

4347
- ``enxcol_.<collectionName>.esc``, referred to as ``ESC``
44-
- ``enxcol_.<collectionName>.ecc``, referred to as ``ECC``
4548
- ``enxcol_.<collectionName>.ecoc``, referred to as ``ECOC``
4649

4750
.. example::
@@ -50,29 +53,25 @@ metadata collections:
5053
following metadata collections:
5154

5255
- ``enxcol_.patients.esc``
53-
- ``enxcol_.patients.ecc``
5456
- ``enxcol_.patients.ecoc``
5557

5658

57-
When you insert documents with encrypted fields that you wish to query on,
59+
When you insert documents with a queryable encrypted field,
5860
MongoDB updates the metadata collections to maintain an index
59-
that enables you to query. MongoDB refers to this as "indexed field". This
60-
comes at a cost in storage and write speed.
61+
that enables querying. The field becomes an "indexed field". This
62+
comes at a cost in storage and write speed for every such field.
6163

6264
Storage Costs
6365
-------------
6466

6567
Storage and write costs increase based on the number of indexed fields
6668
per document.
6769

68-
.. important:: Technical Preview
69-
70-
MongoDB's guidance during the technical preview is to expect two to
71-
three times the storage requirement for a {+qe+} collection and
72-
associated metadata collections. For example, a 1 GB collection may
73-
have a storage requirement of 2-3 GB for associated metadata collections.
70+
.. important::
7471

75-
This guidance will be tuned in a future release.
72+
Expect a {+qe+} collection to have 2-3 times the storage requirements
73+
of the documents, to account for metadata collections. For example, a
74+
1 GB collection may have a storage requirement of 2-3 GB.
7675

7776
Write Costs
7877
-----------
@@ -97,11 +96,10 @@ metadata collections.
9796
Update Operations
9897
~~~~~~~~~~~~~~~~~
9998

100-
When updating a document, each indexed field requires four writes to
99+
When updating a document, each indexed field requires three writes to
101100
metadata collections.
102101

103102
- One write to ``ESC``
104-
- One write to ``ECC``
105103
- Two writes to ``ECOC``
106104

107105

@@ -110,45 +108,44 @@ metadata collections.
110108
Updating a document with two indexed fields requires:
111109

112110
- One write to the encrypted collection.
113-
- Eight writes to the metadata collections.
111+
- Six writes to the metadata collections.
114112

115113

116114
Delete Operations
117115
~~~~~~~~~~~~~~~~~
118116

119-
When deleting a document, each indexed field requires two writes to the
117+
When deleting a document, each indexed field requires one write to the
120118
metadata collections.
121119

122-
- One write to ``ECC``
123120
- One write to ``ECOC``
124121

125122

126123
.. example::
127124

128125
Deleting a document with two indexed fields requires:
129126

130-
- One write into the encrypted collection.
131-
- Four writes to the metadata collections.
127+
- One write to the encrypted collection.
128+
- Two writes to the metadata collections.
132129

133130

134131
.. _qe-index-compaction:
135132

136133
Index Compaction
137134
----------------
138135

139-
.. important:: Technical Preview
136+
.. important::
140137

141-
You are required to run index compaction during the technical preview.
142-
MongoDB plans to automatically run index compaction in a future release.
138+
You must manually run index compaction. MongoDB will automatically
139+
run index compaction in a future release.
143140

144141
As you insert, update, and delete documents, the metadata collections
145-
change and grow. Index compaction is a process that prunes the metadata
146-
collections and reduces their size.
142+
change and grow. Index compaction prunes the metadata collections and
143+
reduces their size.
147144

148-
You should run index compaction when the size of ``ECOC`` exceeds 1 GB.
145+
Run index compaction when the size of ``ECOC`` exceeds 1 GB.
149146

150147
You can check the size of your collections using :binary:`~bin.mongosh`
151-
and issuing the ``db.collection.totalSize()`` command.
148+
and issuing the :method:`db.collection.totalSize()` command.
152149

153150
.. example::
154151

source/release-notes/7.0-compatibility.txt

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,56 @@ Compatibility Changes in MongoDB 7.0
1212
:depth: 1
1313
:class: singlecol
1414

15+
<<<<<<< HEAD
1516
This page describes changes introduced in MongoDB 7.0 that can affect
1617
compatibility with older versions of MongoDB.
18+
=======
19+
.. |version| replace:: 7.0
20+
.. include:: /includes/rapid-release.rst
21+
22+
This page describes changes introduced in MongoDB 7.0 that can affect
23+
compatibility with older versions of MongoDB.
24+
25+
Queryable Encryption General Availability
26+
-----------------------------------------
27+
28+
Starting in MongoDB 7.0, the {+qe-equality-ga+} is generally
29+
available (GA). Improvements in the GA make it
30+
incompatible with the {+qe-preview+}.
31+
32+
Driver Compatibility
33+
~~~~~~~~~~~~~~~~~~~~
34+
35+
To use the {+qe-equality-ga+}, MongoDB server and drivers must both be
36+
version 7.0 or later. If you are still using the {+qe-preview+} included
37+
with MongoDB 6.x, both the server and drivers must remain on version
38+
6.x. You cannot use MongoDB 6.x drivers with a 7.0 server, or 7.0
39+
drivers with a 6.x server.
40+
41+
To make upgrading easier, MongoDB 7.0 drivers can decrypt data
42+
created with MongoDB 6.x drivers. See the following section for
43+
migration steps if you need to upgrade and then carry over existing
44+
encrypted data.
45+
46+
On-Disk Storage Format Changes
47+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
48+
49+
The on-disk storage format in the {+qe-framework+} GA is
50+
incompatible with the format used for the {+qe-preview+}. MongoDB 7.0
51+
drivers can decrypt documents created with MongoDB 6.x drivers, but
52+
can't query encrypted fields or insert data.
53+
54+
If you encrypted data using the {+qe-preview+}:
55+
56+
# Upgrade MongoDB server and drivers to 7.0
57+
# Query each encrypted collection from a 7.0 driver to decrypt it.
58+
# Save the output locally.
59+
# Configure a new encrypted collection and ingest the data.
60+
61+
.. warning::
62+
* The :binary:`~bin.mongoexport` and :binary:`~bin.mongodump`
63+
operations do not decrypt the collection. You must query the
64+
collection from a driver to output the decrypted data.
65+
* MongoDB 7.0 drivers can't query encrypted fields on data encrypted
66+
with MongoDB 6.x drivers, so you must query the entire collection.
67+
>>>>>>> 3f72852ce (Cleaned feature branch)

0 commit comments

Comments
 (0)