[SERVER-55163] Add runtime-configurable setParameter for turning SBE on and off Created: 11/Mar/21  Updated: 29/Oct/23  Resolved: 10/May/21

Status: Closed
Project: Core Server
Component/s: Querying
Affects Version/s: None
Fix Version/s: 5.0.0-rc0

Type: Task Priority: Major - P3
Reporter: David Storch Assignee: Jennifer Peshansky (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by SERVER-52273 Delete feature flag for Slot-based ex... Closed
Documented
is documented by DOCS-14434 Investigate changes in SERVER-55163: ... Closed
Related
is related to SERVER-56729 Add FSM test for SBE query knob Closed
Backwards Compatibility: Fully Compatible
Sprint: Query Execution 2021-05-03, Query Execution 2021-05-17
Participants:

 Description   

The SBE feature can currently be turned on and off using the featureFlagSBE feature flag. Like all feature flags, it can only be set at server startup, not while the server is running. For SBE, however, we believe there is some risk that customers could encounter problems in the field once it is shipped and will need to resolve their issue by explicitly disabling SBE. It would be burdensome to require them to restart their servers in this scenario. Therefore, we want to add a setParameter which can be configured at runtime to make it easier for customers to disable SBE in an emergency or support scenario.

This means that while SBE is under development, there will be two flags: The feature flag and the regular setParameter. The behavior should be that SBE is only enabled when both flags are on. The feature flag should be configured to false by default, whereas the new flag is configured to true by default. This means that during our interim period, test suites need only enable the feature flag in order to test SBE.

Once the feature is production ready, we will delete the feature flag but leave the regular setParameter in place. This will have the affect of enabling SBE by default, since as I mentioned above the setParameter will always have a default value of true.

When the feature flag is deleted, we should also convert the "SBE on" build variant to the "SBE off" build variant. The SBE off build variant uses the regular setParameter to disable SBE. We need this in order to ensure that we don't lose test coverage for the classic execution engine. The classic engine must still work correctly if we think customers could experience problems with SBE and need to fall back to it.



 Comments   
Comment by Githook User [ 07/May/21 ]

Author:

{'name': 'Jenny Peshansky', 'email': 'jenny.peshansky@mongodb.com', 'username': 'jenniferpeshansky'}

Message: SERVER-55163 Add runtime-configurable setParameter for turning SBE on and off
Branch: master
https://github.com/mongodb/mongo/commit/fabe65934a353bbdd8c13c1efd0f2e064259debb

Comment by Kyle Suarez [ 28/Apr/21 ]

Linking SERVER-52273 as depending on this work – once this is in we can delete that feature flag and use this one as the "official" way to enable or disable SBE.

Generated at Thu Feb 08 05:35:39 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.