Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Guardrail: Interface defining a guardrail that guards against a particular usage/condition.
  • DefaultGuardrail: Abstract class implementing Guardrail. It implements the default behaviour when the guardrail is triggered consisting on throwing warnings or errors.
  • GuardrailsFactory: Interface defining a factory for building instances of Guardrail.
  • DefaultGuardrailsFactory: Class implementing GuardrailsFactory, it builds instances of DefaultGuardrail.
  • CustomGuardrailsFactory: Abstract class instantiating a custom GuardrailsFactory, so users can provide their own implementations of guardrails through a system property named cassandra.custom_guardrails_factory_class.
  • GuardrailsConfig: Configuration settings for Guardrails, which are populated from cassandra.yaml . This contains a main setting enabled, controlling if Guardrails are globally active or not, and individual settings to control each Guardrail.
  • cassandra.yaml: allows configuring individual Guardrails at startup, being globally disabled by default.
  • Guardrails: Entry point for guardrails, storing all the defined guardrail instances and additional helper methods. These Guardrail instances are built at startup with the provided GuardrailsFactory and GuardrailsConfig.

...

Code Block
languagetext
themeRDark
titlecassandra.yaml settings
# 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

It will also be possible to dynamically configure guardrails at runtime through JMX and possibly virtual tables.

Migrating existing cassandra.yaml warn/fail thresholds

...

Guardrails allow C* operators to impose system-wide restrictions that are configured through yaml and JMX/virtual tables. Capability restrictions are focused on imposing restrictions on particular users and offer a new CQL API to do so. Both concepts are not mutually exclusive and are complementary.

...