Yes, limits are good, in case of a solution for virtual tables. I can
imagine that it will be use just for the sake of diagnostics what a
node is doing and so on and even we lift the limit to something like
1000, that is already a plenty to show a respective operator (as a
person) what a node does in the particular moment or some time ago.

For a more "forensics" approach it might be ideal to put it to
chronicle queues to have it persistent and an offline debugging but
that is something the other (pluggable) implementation would cover.

It should be also possible to tune this in runtime, e.g. the limit,
not sure how hard this is to implement in the run time when
diagnostics "framework" is started, however we should be at least able
to turn it off completely on demand.

I am not sure yet how the implementation in case of virtual tables
fits into the overall picture of "pluggability". I would say that is a
completely standalone approach. Virtual tables are quite unique in
this regard. However, I might somehow "force it" to implement some
extension point / interface just for the sake of having it all on the
same approach.


On Sat, 24 Jul 2021 at 10:34, Mick Semb Wever <m...@apache.org> wrote:
>
> Some input…
>
> We don't need a CEP for this: Diagnostic Events already exists, as do
> Virtual Tables. But if you want to take it to a CEP, that's to be
> encouraged :)
>
> Virtual Tables should remain virtual, i.e. they shouldn't be backed by
> custom system_* tables solely for the sake of persisting the virtual table
> data. Furthermore, I'd avoid a) the write amplification this would cause,
> and b) putting queue data into a system table. (Let's not repeat the hints
> table).
>
> A big +1 to adding a virtual table that reads `DiagnosticEventPersistence.
> instance().getEvents(..)`
> That is, adding a virtual table for diagnostic events that honours the
> already existing backend store (whatever it is memory or binlog). This will
> be an effective and elegant solution to CASSANDRA-13472 (thank you for
> bringing this to light!)
>
> And, a big +1 to adding local persistence of diagnostic events using binlog
> (ChronicleQueue).
>
>
> > My concern is that there would be "too much data" in them and it might grow
> and grow as a node is live, …
>
>
> It is in the same category as auditing and fql. The limit is there as it is
> expected that a client is collecting these events, and that the store
> (memory or binlog) is not the permanent archive. Check out how Reaper
> collects and archives diagnostic events:
> https://github.com/thelastpickle/cassandra-reaper/blob/master/src/server/src/main/java/io/cassandrareaper/service/DiagEventPoller.java

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
For additional commands, e-mail: dev-h...@cassandra.apache.org

Reply via email to