- Notifications
You must be signed in to change notification settings - Fork 726
Closed
Description
Enabling and disabling feature flags takes way too long right now, because we don't only have to update the config, we need to restart all nodes to apply the new config, which can take hours for large databases. We need to fix feature flags and update them at runtime, as soon as the new config is uploaded. Here's a rough plan:
- Write a code generator that would generate
TFeatureFlagsclass from protos
Values would be stored as atomic bit flags.
Get...andSet...would need to update those atomically.
operator=andMergemethods would change those in batches (no need to guarantee consistency between different flags though, since 64 bits wouldn't be enough for all flags).
Has...methods shouldn't be needed, which would simplify bit management. - Make sure current uses of
AppData()->FeatureFlagswon't break when flags start changing at runtime, and switch to the new class. - Write a config updater actor, that would subscribe to feature flags updates and apply new config at runtime.
- Add a monitoring page that displays current feature flags and the number of subscribers
Metadata
Metadata
Assignees
Labels
No labels