[DOCS-16022] [Server] Investigate changes in SERVER-75054: Clarify names and default value for QueryFrameworkControl Created: 10/Apr/23  Updated: 13/Nov/23  Resolved: 10/Apr/23

Status: Closed
Project: Documentation
Component/s: manual, Server
Affects Version/s: None
Fix Version/s: 7.0.0-rc0, Server_Docs_20231030, Server_Docs_20231106, Server_Docs_20231105, Server_Docs_20231113

Type: Task Priority: Major - P3
Reporter: Backlog - Core Eng Program Management Team Assignee: Unassigned
Resolution: Won't Do Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Documented
documents SERVER-75054 Clarify names and default value for Q... Closed
Participants:
Days since reply: 43 weeks, 2 days ago

 Description   
Original Downstream Change Summary

On v6.3 by default, internal server parameter 'internalQueryFrameworkControl' is set to 'tryBonsai', and the feature flag 'featureFlagCommonQueryFramework' is disabled.

This commit changes the default for v7.0. On v7.0 by default, internal server parameter 'internalQueryFrameworkControl' is set to 'trySbeEngine', and the feature flag 'featureFlagCommonQueryFramework' is still disabled. Also, this commit makes it an error to set 'internalQueryFrameworkControl' to 'tryBonsai' when 'featureFlagCommonQueryFramework' is disabled.

So, if a user on v6.3.dumped all of the default values of server parameters, including internal parameters, to a file and then used that file to start up a 7.0 mongod, they would see an error. The effect would be the same as trying to set an internal server parameter which has been deleted. We do not expect this to be common.

Note there are no changes to the default query behavior seen by users because the related feature flag is still disabled. Also, this does not affect users who have the internal flag set to 'forceClassic'. The change is that mongod cannot start up by default with 'internalQueryFrameworkControl' set to 'tryBonsai'.

Description of Linked Ticket

Currently users can pass in any of these values for the QueryFrameworkControl enum:

  • forceClassicEngine
  • trySbeEngine
  • tryBonsai
    • This is the default.
    • Confusingly, it behaves the same as 'trySbeEngine' by default. (Depends on a feature flag.)
  • forceBonsai
    • Also behaves the same as 'trySbeEngine' by default.

There are a couple problems with this:

  1. The default behavior is unclear: the enum defaults to 'tryBonsai' but the actual behavior defaults to 'trySbeEngine'.
  2. The name "Bonsai" may not be final, so we should not bake it in to user-facing options.

I would propose the following behavior:

  • forceClassicEngine
  • trySbeEngine
    • Make this the default.
  • tryBonsai
    • Error if the feature flag is not enabled.
  • forceBonsai
    • Error if the feature flag is not enabled.

This solves the two problems:

  1. The default behavior is clearly 'trySbeEngine'.
  2. The names 'tryBonsai' and 'forceBonsai' are not user-facing, because you can't specify them without the feature flag + enableTestCommands.

Generated at Thu Feb 08 08:14:24 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.