From b62de978d9a2709408404fc320275e3c18927e28 Mon Sep 17 00:00:00 2001 From: Bailey Pearson Date: Fri, 23 Aug 2024 13:30:15 -0600 Subject: [PATCH 01/13] rnd 2 --- .../client-side-operations-timeout.md | 11 +++++++ source/crud/crud.md | 31 +++++++++++++++++++ source/crud/tests/README.md | 11 +++++++ 3 files changed, 53 insertions(+) diff --git a/source/client-side-operations-timeout/client-side-operations-timeout.md b/source/client-side-operations-timeout/client-side-operations-timeout.md index b99754d6ae..7c1d1c1db7 100644 --- a/source/client-side-operations-timeout/client-side-operations-timeout.md +++ b/source/client-side-operations-timeout/client-side-operations-timeout.md @@ -428,6 +428,16 @@ check the command document for the presence of a `maxTimeMS` field. See [runCommand behavior](#runcommand-behavior). +### Explain Helpers + +If a driver provides an explain helper, drivers MUST take care to ensure that timeoutMS is correctly applied to the top-level +explain command, when specified. Care should be taken by drivers with a fluent API - the following example +should apply a timeoutMS of 1000 to the `explain` command: + +```typescript +collection.find({}, { timeoutMS: 1000 }).explain(); +``` + ## Test Plan See the [README.rst](tests/README.md) in the tests directory. @@ -651,6 +661,7 @@ timeout for each database operation. This would mimic using `timeoutMode=ITERATI ## Changelog +- 2024-08-23: Specify that explain helpers support support timeoutMS. - 2023-12-07: Migrated from reStructuredText to Markdown. - 2022-11-17: Use minimum RTT for maxTimeMS calculation instead of 90th percentile RTT. - 2022-10-05: Remove spec front matter. diff --git a/source/crud/crud.md b/source/crud/crud.md index cd9389c4e5..327ed4714c 100644 --- a/source/crud/crud.md +++ b/source/crud/crud.md @@ -2199,6 +2199,26 @@ the [$readPreference global command argument](../message/OP_MSG.md#global-comman [passing read preference to mongos and load balancers](../server-selection/server-selection.md#passing-read-preference-to-mongos-and-load-balancers) (if applicable). + +### Explain + +Drivers MAY provide explain helpers. If a driver does provide explain helpers, the driver MUST ensure that its helper permits users to +specify maxTimeMS for the explain command specifically. An example, using Node, might look like: + +```typescript +collection.find({ name: 'john doe' }).explain({ maxTimeMS: 1000 }); + +// sends: +{ + explain: { find: , query: { name: 'john doe' } }, + maxTimeMS: 1000 +} +``` + +Drivers SHOULD be careful to + +Drivers MUST document how users can specify options on their explain helpers. + ## Test Plan See the [README](tests/README.md) for tests. @@ -2311,6 +2331,15 @@ api be consistent with the rest of the methods in the CRUD family of operations. able to be used as this change is non-backwards breaking. Any driver which implemented the fluent bulk API should deprecate it and drivers that have not built it should not do so. +Q: Should drivers offer explain helpers?\ +Originally, it was determined that explain should not be exposed via specialized APIs in drivers (runCommand was always an option after server 3.0.). However, some drivers historically have offered explain APIs and continue to do +so. + +Explain helpers are not required because it has been determined to be not a normal use-case for a driver. We'd like users to use the +shell for this purpose. However, explain is still possible from a driver. For find, it can be passed as a modifier. +Aggregate can be run using a runCommand method passing the explain option. In addition, server 3.0 offers an explain +command that can be run using a runCommand method. + Q: What about explain? Explain has been determined to be not a normal use-case for a driver. We'd like users to use the shell for this purpose. @@ -2380,6 +2409,8 @@ aforementioned allowance in the SemVer spec. ## Changelog +- 2024-08-23: Specify that explain helpers support maxTimeMS. + - 2024-02-20: Migrated from reStructuredText to Markdown. - 2022-10-05: Remove spec front matter and reformat changelog. diff --git a/source/crud/tests/README.md b/source/crud/tests/README.md index 261d81c96f..88ca4547c6 100644 --- a/source/crud/tests/README.md +++ b/source/crud/tests/README.md @@ -677,3 +677,14 @@ InsertOne { Execute `bulkWrite` on `client` with `model`. Assert that an error (referred to as `error`) is returned. Assert that `error` is a client error containing the message: "bulkWrite does not currently support automatic encryption". + +### 14. `explain` helpers allow users to specify `maxTimeMS` + +Create a MongoClient with command monitoring enabled (referred to as `client`). + +Create a collection, referred to as `collection`, with the namespace `explain-test.collection`. + +Run an explained find on `collection`. The find will have the query predicate `{ name: 'john doe' }`. Specify +a maxTimeMS value of 2000ms for the `explain`. + +Obtain the command started event for the explain. Confirm that the top-level explain command should has a `maxTimeMS` value of `2000`. From be9966ecdf10dd53aa0525498a5201604d280660 Mon Sep 17 00:00:00 2001 From: Bailey Pearson Date: Fri, 23 Aug 2024 13:51:01 -0600 Subject: [PATCH 02/13] fix formatting --- source/crud/crud.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/source/crud/crud.md b/source/crud/crud.md index 327ed4714c..aea3778885 100644 --- a/source/crud/crud.md +++ b/source/crud/crud.md @@ -2199,7 +2199,6 @@ the [$readPreference global command argument](../message/OP_MSG.md#global-comman [passing read preference to mongos and load balancers](../server-selection/server-selection.md#passing-read-preference-to-mongos-and-load-balancers) (if applicable). - ### Explain Drivers MAY provide explain helpers. If a driver does provide explain helpers, the driver MUST ensure that its helper permits users to @@ -2215,8 +2214,6 @@ collection.find({ name: 'john doe' }).explain({ maxTimeMS: 1000 }); } ``` -Drivers SHOULD be careful to - Drivers MUST document how users can specify options on their explain helpers. ## Test Plan @@ -2333,7 +2330,7 @@ deprecate it and drivers that have not built it should not do so. Q: Should drivers offer explain helpers?\ Originally, it was determined that explain should not be exposed via specialized APIs in drivers (runCommand was always an option after server 3.0.). However, some drivers historically have offered explain APIs and continue to do -so. +so. Explain helpers are not required because it has been determined to be not a normal use-case for a driver. We'd like users to use the shell for this purpose. However, explain is still possible from a driver. For find, it can be passed as a modifier. From 46d36a6ea0864d83e8f31ccd199e6147e9da113a Mon Sep 17 00:00:00 2001 From: Bailey Pearson Date: Fri, 23 Aug 2024 15:18:53 -0600 Subject: [PATCH 03/13] lint --- .../client-side-operations-timeout.md | 4 ++-- source/crud/crud.md | 19 ++++++++++--------- source/crud/tests/README.md | 7 ++++--- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/source/client-side-operations-timeout/client-side-operations-timeout.md b/source/client-side-operations-timeout/client-side-operations-timeout.md index 7c1d1c1db7..f11231dfe0 100644 --- a/source/client-side-operations-timeout/client-side-operations-timeout.md +++ b/source/client-side-operations-timeout/client-side-operations-timeout.md @@ -430,8 +430,8 @@ See [runCommand behavior](#runcommand-behavior). ### Explain Helpers -If a driver provides an explain helper, drivers MUST take care to ensure that timeoutMS is correctly applied to the top-level -explain command, when specified. Care should be taken by drivers with a fluent API - the following example +If a driver provides an explain helper, drivers MUST take care to ensure that timeoutMS is correctly applied to the +top-level explain command, when specified. Care should be taken by drivers with a fluent API - the following example should apply a timeoutMS of 1000 to the `explain` command: ```typescript diff --git a/source/crud/crud.md b/source/crud/crud.md index aea3778885..eabfee2f4f 100644 --- a/source/crud/crud.md +++ b/source/crud/crud.md @@ -2201,8 +2201,8 @@ the [$readPreference global command argument](../message/OP_MSG.md#global-comman ### Explain -Drivers MAY provide explain helpers. If a driver does provide explain helpers, the driver MUST ensure that its helper permits users to -specify maxTimeMS for the explain command specifically. An example, using Node, might look like: +Drivers MAY provide explain helpers. If a driver does provide explain helpers, the driver MUST ensure that its helper +permits users to specify maxTimeMS for the explain command specifically. An example, using Node, might look like: ```typescript collection.find({ name: 'john doe' }).explain({ maxTimeMS: 1000 }); @@ -2329,13 +2329,14 @@ able to be used as this change is non-backwards breaking. Any driver which imple deprecate it and drivers that have not built it should not do so. Q: Should drivers offer explain helpers?\ -Originally, it was determined that explain should not be exposed via specialized APIs in drivers (runCommand was always an option after server 3.0.). However, some drivers historically have offered explain APIs and continue to do -so. - -Explain helpers are not required because it has been determined to be not a normal use-case for a driver. We'd like users to use the -shell for this purpose. However, explain is still possible from a driver. For find, it can be passed as a modifier. -Aggregate can be run using a runCommand method passing the explain option. In addition, server 3.0 offers an explain -command that can be run using a runCommand method. +Originally, it was determined that explain should not be exposed via +specialized APIs in drivers (runCommand was always an option after server 3.0.). However, some drivers historically have +offered explain APIs and continue to do so. + +Explain helpers are not required because it has been determined to be not a normal use-case for a driver. We'd like +users to use the shell for this purpose. However, explain is still possible from a driver. For find, it can be passed as +a modifier. Aggregate can be run using a runCommand method passing the explain option. In addition, server 3.0 offers an +explain command that can be run using a runCommand method. Q: What about explain? diff --git a/source/crud/tests/README.md b/source/crud/tests/README.md index 88ca4547c6..c8e418d229 100644 --- a/source/crud/tests/README.md +++ b/source/crud/tests/README.md @@ -684,7 +684,8 @@ Create a MongoClient with command monitoring enabled (referred to as `client`). Create a collection, referred to as `collection`, with the namespace `explain-test.collection`. -Run an explained find on `collection`. The find will have the query predicate `{ name: 'john doe' }`. Specify -a maxTimeMS value of 2000ms for the `explain`. +Run an explained find on `collection`. The find will have the query predicate `{ name: 'john doe' }`. Specify a +maxTimeMS value of 2000ms for the `explain`. -Obtain the command started event for the explain. Confirm that the top-level explain command should has a `maxTimeMS` value of `2000`. +Obtain the command started event for the explain. Confirm that the top-level explain command should has a `maxTimeMS` +value of `2000`. From f8c6b7fdc3516e6cf42087b629a335a634c0be42 Mon Sep 17 00:00:00 2001 From: Bailey Pearson Date: Mon, 9 Sep 2024 09:57:59 -0600 Subject: [PATCH 04/13] asdf --- source/crud/crud.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/source/crud/crud.md b/source/crud/crud.md index eabfee2f4f..c9f11b0dad 100644 --- a/source/crud/crud.md +++ b/source/crud/crud.md @@ -2330,13 +2330,12 @@ deprecate it and drivers that have not built it should not do so. Q: Should drivers offer explain helpers?\ Originally, it was determined that explain should not be exposed via -specialized APIs in drivers (runCommand was always an option after server 3.0.). However, some drivers historically have -offered explain APIs and continue to do so. +specialized APIs in drivers (runCommand was always an option after server 3.0). Explain helpers are not required because it has been determined to be not a normal use-case for a driver. We'd like -users to use the shell for this purpose. However, explain is still possible from a driver. For find, it can be passed as -a modifier. Aggregate can be run using a runCommand method passing the explain option. In addition, server 3.0 offers an -explain command that can be run using a runCommand method. +users to use the shell for this purpose. However, explain is still possible from a driver. Aggregate can be run using a +runCommand method passing the explain option. In addition, server 3.0 offers an explain command that can be run using a +runCommand method. However, some drivers historically have offered explain APIs and continue to do so. Q: What about explain? From 6801ed1a662b0277d41ad09d86b944e13cea9517 Mon Sep 17 00:00:00 2001 From: Bailey Pearson Date: Mon, 9 Sep 2024 10:08:35 -0600 Subject: [PATCH 05/13] rephrase --- source/crud/crud.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/source/crud/crud.md b/source/crud/crud.md index c9f11b0dad..838cde40c4 100644 --- a/source/crud/crud.md +++ b/source/crud/crud.md @@ -2330,12 +2330,10 @@ deprecate it and drivers that have not built it should not do so. Q: Should drivers offer explain helpers?\ Originally, it was determined that explain should not be exposed via -specialized APIs in drivers (runCommand was always an option after server 3.0). - -Explain helpers are not required because it has been determined to be not a normal use-case for a driver. We'd like -users to use the shell for this purpose. However, explain is still possible from a driver. Aggregate can be run using a -runCommand method passing the explain option. In addition, server 3.0 offers an explain command that can be run using a -runCommand method. However, some drivers historically have offered explain APIs and continue to do so. +specialized APIs in drivers because it it was deemed to be an unusual use-case for a driver. We'd like users to use the +shell for this purpose. However, explain is still possible from a driver. Some drivers have historically provided +explain helpers and continue to do so. Drivers that do not offer explain helpers can run explain commands using the +runCommand API. Q: What about explain? From 0105e1eff55b34610a49160c9ffce2d138a34348 Mon Sep 17 00:00:00 2001 From: Bailey Pearson Date: Mon, 9 Sep 2024 13:12:49 -0600 Subject: [PATCH 06/13] test description --- source/crud/tests/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/crud/tests/README.md b/source/crud/tests/README.md index c8e418d229..b45811ea14 100644 --- a/source/crud/tests/README.md +++ b/source/crud/tests/README.md @@ -680,6 +680,10 @@ Execute `bulkWrite` on `client` with `model`. Assert that an error (referred to ### 14. `explain` helpers allow users to specify `maxTimeMS` +Drivers that provide a multiple APIs to specify explain should ensure this test is run at least once with each distinct +API. For example, the Node driver runs this test with option API (`collection.find({}, { explain: ... })`)git and the +fluent API (`collection.find({}).explain(...)`). + Create a MongoClient with command monitoring enabled (referred to as `client`). Create a collection, referred to as `collection`, with the namespace `explain-test.collection`. From e39a8ec7eeb39de88619f97c84bfa0ec6f764fd8 Mon Sep 17 00:00:00 2001 From: Bailey Pearson Date: Mon, 9 Sep 2024 15:10:02 -0600 Subject: [PATCH 07/13] comments --- .../client-side-operations-timeout.md | 11 +++++++---- source/crud/crud.md | 6 +++--- source/crud/tests/README.md | 4 ++-- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/source/client-side-operations-timeout/client-side-operations-timeout.md b/source/client-side-operations-timeout/client-side-operations-timeout.md index f11231dfe0..b9ee58c4e4 100644 --- a/source/client-side-operations-timeout/client-side-operations-timeout.md +++ b/source/client-side-operations-timeout/client-side-operations-timeout.md @@ -428,11 +428,14 @@ check the command document for the presence of a `maxTimeMS` field. See [runCommand behavior](#runcommand-behavior). -### Explain Helpers +### Explain -If a driver provides an explain helper, drivers MUST take care to ensure that timeoutMS is correctly applied to the -top-level explain command, when specified. Care should be taken by drivers with a fluent API - the following example -should apply a timeoutMS of 1000 to the `explain` command: +> [!NOTE] +> This portion of the specification is only relevant for drivers that provide `explain` helpers. + +When `timeoutMS` is specified, drivers MUST take care to ensure that timeoutMS is correctly applied to the top-level +explain command. Care should be taken by drivers with a fluent API - the following example should apply a timeoutMS of +1000 to the `explain` command: ```typescript collection.find({}, { timeoutMS: 1000 }).explain(); diff --git a/source/crud/crud.md b/source/crud/crud.md index 838cde40c4..a6f2e48ee3 100644 --- a/source/crud/crud.md +++ b/source/crud/crud.md @@ -104,6 +104,9 @@ Drivers MUST enforce timeouts for all operations per the [Client Side Operations Timeout](../client-side-operations-timeout/client-side-operations-timeout.md) specification. All operations that return cursors MUST support the timeout options documented in the [Cursors](../client-side-operations-timeout/client-side-operations-timeout.md#cursors) section of that specification. +All explain helpers MUST support the timeout options documented in the +[Explain Helpers](../client-side-operations-timeout/client-side-operations-timeout.md#explain_helpers) section of that +specification. ### API @@ -178,9 +181,6 @@ interface Collection { * as it would be impossible to be forwards and backwards compatible. Let the server * handle the validation. * - * Note: If $explain is specified in the modifiers, the return value is a single - * document. This could cause problems for static languages using strongly typed entities. - * * Note: result iteration should be backed by a cursor. Depending on the implementation, * the cursor may back the returned Iterable instance or an iterator that it produces. * diff --git a/source/crud/tests/README.md b/source/crud/tests/README.md index b45811ea14..8d091f443d 100644 --- a/source/crud/tests/README.md +++ b/source/crud/tests/README.md @@ -680,8 +680,8 @@ Execute `bulkWrite` on `client` with `model`. Assert that an error (referred to ### 14. `explain` helpers allow users to specify `maxTimeMS` -Drivers that provide a multiple APIs to specify explain should ensure this test is run at least once with each distinct -API. For example, the Node driver runs this test with option API (`collection.find({}, { explain: ... })`)git and the +Drivers that provide multiple APIs to specify explain should ensure this test is run at least once with each distinct +API. For example, the Node driver runs this test with option API (`collection.find({}, { explain: ... })`) and the fluent API (`collection.find({}).explain(...)`). Create a MongoClient with command monitoring enabled (referred to as `client`). From 20b1a0afe58612af1b2a77e7b225c8cf60885dba Mon Sep 17 00:00:00 2001 From: Bailey Pearson Date: Tue, 10 Sep 2024 15:42:54 -0600 Subject: [PATCH 08/13] Formatting --- source/crud/crud.md | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/source/crud/crud.md b/source/crud/crud.md index a6f2e48ee3..cf605996c2 100644 --- a/source/crud/crud.md +++ b/source/crud/crud.md @@ -2201,8 +2201,24 @@ the [$readPreference global command argument](../message/OP_MSG.md#global-comman ### Explain -Drivers MAY provide explain helpers. If a driver does provide explain helpers, the driver MUST ensure that its helper -permits users to specify maxTimeMS for the explain command specifically. An example, using Node, might look like: +> [!NOTE] +> Explain helpers are optional. Drivers that do not provide explain helpers may ignore this section. + +```typescript +interface ExplainOptions { + /** + * The maximum amount of time to allow the explain to run. + * + * This option is sent only if the caller explicitly provides a value. The default is to not send a value. + * + * NOTE: This option is deprecated in favor of timeoutMS. + */ + maxTimeMS: Optional; +} +``` + +If a driver does provide explain helpers, the driver MUST ensure that its helper permits users to specify a timeout +(maxTimeMS or timeoutMS) for the explain command specifically. An example, using Node, might look like: ```typescript collection.find({ name: 'john doe' }).explain({ maxTimeMS: 1000 }); @@ -2212,8 +2228,19 @@ collection.find({ name: 'john doe' }).explain({ maxTimeMS: 1000 }); explain: { find: , query: { name: 'john doe' } }, maxTimeMS: 1000 } + +collection.find({ name: 'john doe' }).explain({ timeoutMS: 1000 }); + +// sends: +{ + explain: { find: , query: { name: 'john doe' } }, + maxTimeMS: <1000 - average rtt> +} ``` +This ensures that users have a mechanism to apply timeouts to `explain` specifically. Drivers MUST take care to ensure +that + Drivers MUST document how users can specify options on their explain helpers. ## Test Plan From 17aaf5279530020d0627b391f24e113a42bac933 Mon Sep 17 00:00:00 2001 From: Bailey Pearson Date: Tue, 10 Sep 2024 15:46:21 -0600 Subject: [PATCH 09/13] Formatting --- source/crud/crud.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/source/crud/crud.md b/source/crud/crud.md index cf605996c2..ee1ac4026e 100644 --- a/source/crud/crud.md +++ b/source/crud/crud.md @@ -2238,9 +2238,6 @@ collection.find({ name: 'john doe' }).explain({ timeoutMS: 1000 }); } ``` -This ensures that users have a mechanism to apply timeouts to `explain` specifically. Drivers MUST take care to ensure -that - Drivers MUST document how users can specify options on their explain helpers. ## Test Plan From dbe161f8c32fa01e1ed88d878a2e4e4ca705050f Mon Sep 17 00:00:00 2001 From: Bailey Pearson Date: Tue, 10 Sep 2024 15:49:41 -0600 Subject: [PATCH 10/13] remove redundant 'drivers who implement...' --- source/crud/crud.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/crud/crud.md b/source/crud/crud.md index ee1ac4026e..98f9cadb7d 100644 --- a/source/crud/crud.md +++ b/source/crud/crud.md @@ -2217,8 +2217,8 @@ interface ExplainOptions { } ``` -If a driver does provide explain helpers, the driver MUST ensure that its helper permits users to specify a timeout -(maxTimeMS or timeoutMS) for the explain command specifically. An example, using Node, might look like: +Drivers MUST ensure that its helper permits users to specify a timeout (maxTimeMS or timeoutMS) for the explain command +specifically. An example, using Node, might look like: ```typescript collection.find({ name: 'john doe' }).explain({ maxTimeMS: 1000 }); From 5d66a90d815f474319d0ce8e7b884bc6e043431c Mon Sep 17 00:00:00 2001 From: Bailey Pearson Date: Thu, 12 Sep 2024 13:15:46 -0600 Subject: [PATCH 11/13] Matt's comments --- .../client-side-operations-timeout.md | 9 +++++---- source/crud/crud.md | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/source/client-side-operations-timeout/client-side-operations-timeout.md b/source/client-side-operations-timeout/client-side-operations-timeout.md index b9ee58c4e4..e4233e8e69 100644 --- a/source/client-side-operations-timeout/client-side-operations-timeout.md +++ b/source/client-side-operations-timeout/client-side-operations-timeout.md @@ -433,12 +433,13 @@ See [runCommand behavior](#runcommand-behavior). > [!NOTE] > This portion of the specification is only relevant for drivers that provide `explain` helpers. -When `timeoutMS` is specified, drivers MUST take care to ensure that timeoutMS is correctly applied to the top-level -explain command. Care should be taken by drivers with a fluent API - the following example should apply a timeoutMS of -1000 to the `explain` command: +When `timeoutMS` is specified, drivers MUST provide a way to specify timeoutMS that results in maxTimeMS being set on +the `explain` command. For example, Node's implementation might look like: ```typescript -collection.find({}, { timeoutMS: 1000 }).explain(); +collection.find({}).explain({ timeoutMS: 1000 }); +// sends: +{ explain: { find: ... }, maxTimeMS: } ``` ## Test Plan diff --git a/source/crud/crud.md b/source/crud/crud.md index 98f9cadb7d..70ed965fcd 100644 --- a/source/crud/crud.md +++ b/source/crud/crud.md @@ -2234,7 +2234,7 @@ collection.find({ name: 'john doe' }).explain({ timeoutMS: 1000 }); // sends: { explain: { find: , query: { name: 'john doe' } }, - maxTimeMS: <1000 - average rtt> + maxTimeMS: <1000 - min rtt> } ``` From a9737fd0647da4a5f60892b46cb02ab35ba98c78 Mon Sep 17 00:00:00 2001 From: Bailey Pearson Date: Thu, 12 Sep 2024 15:06:17 -0600 Subject: [PATCH 12/13] fix broken link --- source/crud/crud.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/crud/crud.md b/source/crud/crud.md index 70ed965fcd..3862d2fd40 100644 --- a/source/crud/crud.md +++ b/source/crud/crud.md @@ -105,7 +105,7 @@ Drivers MUST enforce timeouts for all operations per the operations that return cursors MUST support the timeout options documented in the [Cursors](../client-side-operations-timeout/client-side-operations-timeout.md#cursors) section of that specification. All explain helpers MUST support the timeout options documented in the -[Explain Helpers](../client-side-operations-timeout/client-side-operations-timeout.md#explain_helpers) section of that +[Explain Helpers](../client-side-operations-timeout/client-side-operations-timeout.md#explain) section of that specification. ### API From 7355e5efd48eead548b9cfb0ca1d4e9c58543f98 Mon Sep 17 00:00:00 2001 From: Bailey Pearson Date: Thu, 12 Sep 2024 15:41:20 -0600 Subject: [PATCH 13/13] update changelog dates --- .../client-side-operations-timeout.md | 2 +- source/crud/crud.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source/client-side-operations-timeout/client-side-operations-timeout.md b/source/client-side-operations-timeout/client-side-operations-timeout.md index e4233e8e69..607ec76d55 100644 --- a/source/client-side-operations-timeout/client-side-operations-timeout.md +++ b/source/client-side-operations-timeout/client-side-operations-timeout.md @@ -665,7 +665,7 @@ timeout for each database operation. This would mimic using `timeoutMode=ITERATI ## Changelog -- 2024-08-23: Specify that explain helpers support support timeoutMS. +- 2024-09-12: Specify that explain helpers support support timeoutMS. - 2023-12-07: Migrated from reStructuredText to Markdown. - 2022-11-17: Use minimum RTT for maxTimeMS calculation instead of 90th percentile RTT. - 2022-10-05: Remove spec front matter. diff --git a/source/crud/crud.md b/source/crud/crud.md index 3862d2fd40..a327949058 100644 --- a/source/crud/crud.md +++ b/source/crud/crud.md @@ -2428,7 +2428,7 @@ aforementioned allowance in the SemVer spec. ## Changelog -- 2024-08-23: Specify that explain helpers support maxTimeMS. +- 2024-09-12: Specify that explain helpers support maxTimeMS. - 2024-02-20: Migrated from reStructuredText to Markdown.