[ https://issues.apache.org/jira/browse/CASSANDRA-17147?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17443995#comment-17443995 ]
Andres de la Peña commented on CASSANDRA-17147: ----------------------------------------------- Here is the initial implementation of guardrails: ||PR||CI|| |[trunk|https://github.com/apache/cassandra/pull/1321]|[j8|https://app.circleci.com/pipelines/github/adelapena/cassandra/1145/workflows/9163675f-0392-447b-baab-e2456a4fef40] [j11|https://app.circleci.com/pipelines/github/adelapena/cassandra/1145/workflows/b936cd54-1220-4b9b-8414-81f3be5ac59b]| The proposed PR is based on a series of patches by [~slebresne], [~jasonstack], [~Gerrrr], [~jakubzytka] and myself. Some characteristics of this implementation are: * Guardrails configuration is under [a new section|https://github.com/apache/cassandra/blob/c900258b2de05315706e3733fe7cff254fcc33fb/conf/cassandra.yaml#L1614-L1643] in {{cassandra.yaml}}. * Each guardrail and the framework itself is disabled by default. * Guardrails can be dynamically modified through JMX using [this mbean|https://github.com/apache/cassandra/blob/c900258b2de05315706e3733fe7cff254fcc33fb/src/java/org/apache/cassandra/db/guardrails/GuardrailsConfigMBean.java]. Future work will make them updatable also through virtual tables, as soon we have writable VTs. * Guardrails are only applied to the queries of regular users, superusers and internal queries are excluded from guardrails. * Guardrails associated to client requests can only be triggered on the coordinator. We will support replica-side guardrails associated to client requests in a followup ticket. * There are initial threshold guardrails for the number of tables, indexes and materialized views. * There is an enable/disable guardrail for user-provided timestamps. * There are guardrails for disallowing and/or warning on a set of table properties. > Guardrails prototype > -------------------- > > Key: CASSANDRA-17147 > URL: https://issues.apache.org/jira/browse/CASSANDRA-17147 > Project: Cassandra > Issue Type: New Feature > Components: Feature/Guardrails > Reporter: Andres de la Peña > Assignee: Andres de la Peña > Priority: Normal > > The purpose of this ticket is creating an initial implementation of the > guardrails framework, as well as adding a few simple guardrails using this > framework. > To keep things easy, this initial implementation would only support > guardrails that are triggered on the coordinator, and they would be > dynamically updatable only through JMX. > Once we have this initial framework ready in a feature branch we can have > multiple tickets addressing all the things that would have been left out of > the scope of this ticket, such as: > * Dynamic updates through virtual tables > * Being able to notify about guardrails triggered on replicas > * Using custom exceptions other than {{InvalidRequestException}}. > * Porting existing limits to use the new guardrails framework > * Adding new guardrails beyond the initial ones > The reason for having this simpler prototype is that it will give us a common > ground to parallelize work on the parts mentioned above. -- This message was sent by Atlassian Jira (v8.20.1#820001) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org