Feature flags
Feature flags
Feature flags are represented as a 64-bit bitmask field in aistore cluster configuration denoting assorted (named) capabilities that can be individually enabled at runtime.
The features themselves are enumerated below. Not all feature flags - henceforth, “features” - are cluster-global.
Assorted features, denoted by (*) below, can also be changed on a per-bucket basis.
By default, all features are disabled, and the corresponding 64-bit field is set to zero.
Table of Contents
Tagging system
Feature flags are now organized with descriptive tags to help users understand their purpose and impact. The CLI displays features in a 3-column format: FEATURE | TAGS | DESCRIPTION.
Tag categories
- Domain-specific:
s3,lz4,etl,mpu,telemetry - Performance impact:
perf,overhead - Network/operations:
net,ops,security - Compatibility:
compat,promote - Deployment:
deploy
Integrity impact indicators
Feature flags that affect data integrity are marked with directional indicators:
integrity+- Enhances data integrity (safer, more conservative)integrity-- Potentially compromises data integrity (trading safety for performance)integrity?- Complex integrity implications (depends on deployment and runtime context)
This helps operators quickly identify flags that involve safety trade-offs.
Validation and conflicts
Feature flags now include validation logic to prevent conflicting configurations:
Disable-Cold-GETandStreaming-Cold-GETare mutually exclusive- Additional validation rules may be added for other conflicting combinations
The validation occurs both at the cluster level and when setting bucket properties.
Names and comments
Global features
For example:
Notice the [FEATURE, TAGS, DESCRIPTION] table above that shows all supported feature flags along with their respective tags and descriptions. Currently selected features are shown in color. Tags help identify the purpose and impact of each feature at a glance.
Tip: Use the tags to quickly identify features by category. For example, look for
integrity-tags to identify features that may trade data integrity for performance, oroverheadtags for features that may impact performance.
To view the current (configured) setting, type the same command and hit Enter:
The same in JSON:
Finally, to reset feature flags back to the system defaults, <TAB-TAB> to select none from the completion list, or simply run:
Bucket features
By default, created and added (ie., discovered upon remote lookup) buckets inherit their properties from the cluster.
For background and details, see Bucket Properties.
It is possible, however, to change the defaults both at bucket creation time and/or at any later time.
Here’s a brief 1-2-3 demonstration in re specifically: feature flags.
1. show existing bucket-scope features
2. select and set
3. reset feature flags back to zero (or ‘none’)
Validation errors
When setting conflicting feature flags, the system will reject the configuration - e.g.: