Kind of a nit, but I advocate for us having a guardrails.yaml and updating this line: > > *cassandra.yaml:* allows configuring individual guardrails at startup, > being globally disabled by default. These guardrails will also be > dynamically configurable through JMX and/or virtual tables.
The cassandra.yaml file is pretty big already and configuration of guardrails seems like a good candidate to modularize here. Could also be done during implementation (or discussed then), so don't hold up voting on me. :) On Wed, Nov 10, 2021 at 3:06 PM David Capwell <dcapw...@apple.com.invalid> wrote: > I am cool with voting. I would love to see added something like “all guard > rails must work in a rolling fashion where some nodes do not have the > latest guard rails”, but also cool leaving this to JIRA. > > > On Nov 10, 2021, at 11:17 AM, Ekaterina Dimitrova <e.dimitr...@gmail.com> > wrote: > > > > I am personally ready to give you my vote :-) > > > > On Wed, 10 Nov 2021 at 13:09, Andrés de la Peña <adelap...@apache.org> > > wrote: > > > >> I think the updated CEP incorporates the feedback above, unless I'm > missing > >> something. Are we ready to start a vote? > >> > >> On Tue, 2 Nov 2021 at 15:54, Andrés de la Peña <adelap...@apache.org> > >> wrote: > >> > >>> Under "Migrating existing cassandra.yaml warn/fail thresholds”, I > >> recently > >>>> added a few things which are basically guardrails, so should be > >> included in > >>>> this set; they are configured by track_warnings > (coordinator_read_size, > >>>> local_read_size, and row_index_size). With track_warnings I setup the > >>>> plumbing to have read queries trigger warnings (or abort the query) to > >> the > >>>> client exists (under "Event logging" you mention "and also to the > client > >>>> connection when applicable”) and isn’t limited to the coordinator > >>>> participating in the query (previous limitation for tombstone > warnings). > >>>> One thing I found which was problematic for track_warnings was that > >>>> altering clients is annoying as java and python both ignore the error > >>>> message we send (see > >>>> > >> > https://github.com/datastax/java-driver/blob/3.11.0/driver-core/src/main/java/com/datastax/driver/core/Responses.java#L73-L131 > >> ). > >>>> We log client warnings (if enabled) but ignore any detailed error > >> message > >>>> received from the server; it would be good to talk about client > >>>> integrations and how users are informed of issues in more detail. > >>> > >>> > >>> I have updated the CEP to include those thresholds among the ones that > >>> could be migrated once we have the guardrails framework ready. I have > >> also > >>> mentioned the usage of internal messaging to be able to propagate the > >>> outcome of guardrails triggered on nodes that are not the coordinator, > >> and > >>> the need of making changes on drivers. > >>> > >>> What I meant by "and also to the client connection when applicable" is > >>> that some guardrails can be applied to things that are nor necessarily > >>> associated to a client connection, such as compaction. I have tried to > be > >>> more explicit about that. > >>> > >>> > >>> On Tue, 2 Nov 2021 at 12:53, Andrés de la Peña < > a.penya.gar...@gmail.com > >>> > >>> wrote: > >>> > >>>> Being able to configure guardrails dynamically makes a lot of sense to > >>>> me, I have updated the CEP to mention that. I think we don't need to > >> decide > >>>> yet whether it would be done through JMX and/or virtual tables. > >>>> > >>>> On Mon, 1 Nov 2021 at 20:35, C. Scott Andreas <sc...@paradoxica.net> > >>>> wrote: > >>>> > >>>>> Re: "I think you all know my feels on JMX." – > >>>>> > >>>>> Super fair - I'd meant to speak in terms of desired outcome ("the > >>>>> feature should be dynamically configurable at runtime") rather than > >>>>> implementation ("this should be via JMX"). 👍 > >>>>> > >>>>> On Nov 1, 2021, at 1:24 PM, David Capwell <dcapw...@apple.com.INVALID > > > >>>>> wrote: > >>>>> > >>>>> > >>>>> If anyone wants to bite off making > >>>>> > >> > https://github.com/apache/cassandra/blob/ab920c30310a8c095ba76b363142b8e74cbf0a0a/src/java/org/apache/cassandra/db/virtual/SettingsTable.java > >>>>> < > >>>>> > >> > https://github.com/apache/cassandra/blob/ab920c30310a8c095ba76b363142b8e74cbf0a0a/src/java/org/apache/cassandra/db/virtual/SettingsTable.java > >>> > >>>>> support mutability then we get vtable support. I am cool with JMX > >> and/or > >>>>> vtable, to me its just more important to allow dynamic setting of > these > >>>>> configs. > >>>>> > >>>>> On Nov 1, 2021, at 10:36 AM, bened...@apache.org wrote: > >>>>> > >>>>> having them only configured via yaml seems like a bad outcome > >>>>> > >>>>> > >>>>> +1 > >>>>> > >>>>> I would like to see us move towards configuration being driven > through > >>>>> virtual tables where possible, so that the whole cluster can be > managed > >>>>> from a single interface. Not sure if this is the right place to bite > >> this > >>>>> off, but perhaps? > >>>>> > >>>>> From: Jeff Jirsa <jji...@gmail.com> > >>>>> Date: Monday, 1 November 2021 at 16:47 > >>>>> To: Cassandra DEV <dev@cassandra.apache.org> > >>>>> Subject: Re: [DISCUSS] CEP-3: Guardrails > >>>>> Without bike-shedding too much, guardrails would be great, building > >> them > >>>>> into a more general purpose framework that limits various dangerous > >>>>> things > >>>>> would be fantastic. The CEP says that the guardrails should be > distinct > >>>>> from the capability restrictions ( > >>>>> https://issues.apache.org/jira/browse/CASSANDRA-8303 ), but I don't > >> see > >>>>> why > >>>>> that needs to be the case. A system-level guardrail and a > >> personal-level > >>>>> guardrail are both restrictions, they just have different scopes, so > >>>>> implement the restriction framework first, and allow the scopes to be > >>>>> expanded as needed? > >>>>> > >>>>> Naming wise, I don't know that I'd actually surface these as > >>>>> "guardrails", > >>>>> but more as general "limits", and having them only configured via > yaml > >>>>> seems like a bad outcome > >>>>> > >>>>> > >>>>> > >>>>> https://issues.apache.org/jira/browse/CASSANDRA-8303 > >>>>> > >>>>> > >>>>> > >>>>> On Mon, Nov 1, 2021 at 9:31 AM Andrés de la Peña < > adelap...@apache.org > >>> > >>>>> wrote: > >>>>> > >>>>> Hi everyone, > >>>>> > >>>>> I'd like to start a discussion about Guardrails proposal: > >>>>> > >>>>> > >>>>> > >> > https://cwiki.apache.org/confluence/display/CASSANDRA/%28DRAFT%29+-+CEP-3%3A+Guardrails > >>>>> > >>>>> Guardrails are an 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 > >>>>> such as having too many secondary indexes, too large partitions, > almost > >>>>> full disks, etc. > >>>>> > >>>>> Thanks, > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org > For additional commands, e-mail: dev-h...@cassandra.apache.org > >