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.