Nitsan Wakart created CASSANDRA-12585:
-----------------------------------------
Summary: Fixup Cassandra Stress reporting thread model and
precision
Key: CASSANDRA-12585
URL: https://issues.apache.org/jira/browse/CASSANDRA-12585
Project: Cassandra
Issue Type: Improvement
Components: Tools
Reporter: Nitsan Wakart
Assignee: Nitsan Wakart
Priority: Critical
Stress current reporting thread currently has a complex, slow and imprecise
method of collecting measurements from the Consumer threads.
StressMetrics thread iterates through the Timers (one Timer per op per Consumer
thread), blocks until the consumer thread collects a measurement on that
operation, which forces the consumer thread to collect a report and unblock the
StressMetrics thread. This means:
- Reporting intervals are effected by sleep interval accuracy on the
StressMetrics thread
- Interval report timing is staggered as the operations get collected.
- The intended logging interval often does not resemble the effective interval.
This patch simplifies collection method and resolves the above issues:
- Each Consumer thread submits timing data to a queue
- StressMetrics thread reads from the queues and merges the data into a report
- StressMetrics reads and reports for the intended interval, so not effected by
timing inaccuracies
- Measurement intervals are aligned to the second, improving the ease of
measurements correlation from several nodes.
See branch here:
https://github.com/nitsanw/cassandra/tree/fix-reporting-sync-issues
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)