[ 
https://issues.apache.org/jira/browse/CASSANDRA-5483?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ben Chan updated CASSANDRA-5483:
--------------------------------

    Attachment: 
v02p02-5483-v05-0003-Use-long-instead-of-EnumSet-to-work-with-JMX.patch
                
v02p02-5483-v04-0003-This-time-use-an-EnumSet-to-pass-boolean-repair-options.patch
                
v02p02-5483-v03-0003-Make-repair-tracing-controllable-via-nodetool.patch

These next few patches are different variations on adding {{nodetool}} control 
of tracing (Use {{nodetool repair -tr}}), and are all based off of the 
{{v02-0002}} patch, hence the naming and the {{0003}} numbering. An overview:

* {{v03}} simply adds a {{trace}} boolean to all of the repair functions.
* {{v04}} does not actually work, due to complications with sending an EnumSet 
parameter via JMX.
* {{v05}} has the same structure as {{V04}}, except it uses a {{long}} and 
traditional bitflags.

The idea for {{v04}} and {{v05}} was to consolidate all of the boolean options 
into a single parameter. That way, adding or removing boolean options doesn't 
require you to modify the entire call chain. It also makes binary compatibility 
easier going forward (no need to maintain an ever growing list of function 
overloads). I'm personally leaning towards {{v05}}.

---

About tracing to a separate table: an earlier comment mentioned wanting to 
trace bootstrap and decommission. I wonder if these would go into that same 
table. If so, I am thinking of calling the new table something generic like 
{{system_traces.trace_logs}}. I also assume, that like 
{{system_traces.events}}, the rows in this table should expire, though perhaps 
not as fast as 24 hours. Thoughts on the naming and the use of the 
{{system_traces}} schema?

---

One last thing I wanted to ask is about the possibility of trace log levels. 
What is the minimum amount of trace log information you would find useful, the 
next amount, and so on? Should it just follow the loglevel? (One possible 
problem with that is you can't change loglevel without a server restart.)

I don't run Cassandra in any sort of production environment, so I'm not as 
familiar with the use cases as I would like.


> Repair tracing
> --------------
>
>                 Key: CASSANDRA-5483
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5483
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Yuki Morishita
>            Assignee: Ben Chan
>            Priority: Minor
>              Labels: repair
>         Attachments: test-5483-system_traces-events.txt, 
> trunk@4620823-5483-v02-0001-Trace-filtering-and-tracestate-propagation.patch, 
> trunk@4620823-5483-v02-0002-Put-a-few-traces-parallel-to-the-repair-logging.patch,
>  tr...@8ebeee1-5483-v01-001-trace-filtering-and-tracestate-propagation.txt, 
> tr...@8ebeee1-5483-v01-002-simple-repair-tracing.txt, 
> v02p02-5483-v03-0003-Make-repair-tracing-controllable-via-nodetool.patch, 
> v02p02-5483-v04-0003-This-time-use-an-EnumSet-to-pass-boolean-repair-options.patch,
>  v02p02-5483-v05-0003-Use-long-instead-of-EnumSet-to-work-with-JMX.patch
>
>
> I think it would be nice to log repair stats and results like query tracing 
> stores traces to system keyspace. With it, you don't have to lookup each log 
> file to see what was the status and how it performed the repair you invoked. 
> Instead, you can query the repair log with session ID to see the state and 
> stats of all nodes involved in that repair session.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to