Table of Contents
...
Status
Current state: Under DiscussionDone
Discussion thread: here
JIRA: TBD CASSANDRA-17146
Released: <Cassandra Version>4.1-alpha1
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
...
- Easy way to enforce system-wide soft and hard limits to prevent anti-patterns of bad usage and in the long run make it not possible to severely degrade the performance of a node/cluster through user actions (too many MVs/secondary indexes per table, ...), thus increasing stability/availability.
- As a C* developer it should be easy to add new Guardrails.
- Guardrails are disabled by default and there should be no overhead when Guardrails are disabled.
- Guardrails are configured in cassandra.yaml and can also be dynamically modified through JMX and/or virtual tables.
- Guardrails emit issue warnings/failures to the server log file, and also to the client connection when applicable.
- Guardrails work in a rolling fashion where some nodes do not have the latest guard rails.
Non-Goals
- Enforcing limits on a per-user-basis.
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
# guardrails: # # enabled: false # # column_value_size_failure_threshold_in_kb: -1 # # columns_per_table_failure_threshold: -1 # # secondary_index_per_table_failure_threshold: -1 # # materialized_view_per_table_failure_threshold: -1 # # tables_warn_threshold: -1 # # tables_failure_threshold: -1 # # table_properties_disallowed: # # write_consistency_levels_disallowed: # # partition_size_warn_threshold_in_mb: -1 # # partition_keys_in_select_failure_threshold: -1 # # disk_usage_percentage_warn_threshold: -1 # # disk_usage_percentage_failure_threshold: -1 # # in_select_cartesian_product_failure_threshold: -1 # # user_timestamps_enabled: true # # read_before_write_list_operations_enabled: true # # fields_per_udt_failure_threshold: -1 # # collection_size_warn_threshold_in_kb: -1 # # items_per_collection_warn_threshold: -1 |
...