[ 
https://issues.apache.org/jira/browse/IGNITE-29059?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18128124#comment-18128124
 ] 

Ignite TC Bot commented on IGNITE-29059:
----------------------------------------

{panel:title=Branch: [pull/13594/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/13594/head] Base: [master] : New Tests 
(2)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#00008b}Basic 1{color} [[tests 
1|https://ci2.ignite.apache.org/viewLog.html?buildId=9416551]]
* {color:#013220}IgniteBasicTestSuite: 
DataStreamerStarvationMetricTest.testStarvationEventsCountUpdatedByPeriodicCheck
 - PASSED{color}

{color:#00008b}Compute (Grid){color} [[tests 
1|https://ci2.ignite.apache.org/viewLog.html?buildId=9416585]]
* {color:#013220}IgniteBinaryObjectsComputeGridTestSuite: 
IgniteStripedExecutorTest.testStarvationEventsCountMetric - PASSED{color}

{panel}
[TeamCity *--> Run :: All* 
Results|https://ci2.ignite.apache.org/viewLog.html?buildId=9416696&buildTypeId=IgniteTests24Java8_RunAll]
{color:#ffffff}tcbot-analysis-comment chainBuildId=9416696 
rerunBuildIds=none{color}

> Add a metric for possible starvation in striped pool to IgniteStripedExecutor
> -----------------------------------------------------------------------------
>
>                 Key: IGNITE-29059
>                 URL: https://issues.apache.org/jira/browse/IGNITE-29059
>             Project: Ignite
>          Issue Type: Task
>            Reporter: Dmitry Werner
>            Assignee: Dmitry Werner
>            Priority: Major
>              Labels: metrics-to-log
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently the "Possible starvation in striped pool" event is only reported 
> via the log by IgniteStripedExecutor, and there is no way to track how often 
> such events occur without grepping the log.
> This adds a single StarvationEventsCount long metric to striped executors 
> (StripedExecutor, GridDataStreamExecutor) so the count of starvation episodes 
> can be monitored through the metrics subsystem (JMX, system views, exporters) 
> instead of log parsing.
> The counter is updated by the periodic starvation check 
> (IGNITE_STARVATION_CHECK_INTERVAL, 30 s by default). A task occupying a 
> stripe longer than failureDetectionTimeout is counted at most once per 
> episode, and only if a check finds it still running past that timeout. 
> Deduplication is done on the detector side via a per-stripe countedStartTs 
> CAS, with no writes on the task hot path.
> The data streamer striped pool is now also registered for periodic starvation 
> detection, so its StarvationEventsCount is updated without reading 
> DetectStarvation. As a side effect, a hung data-streamer stripe will 
> periodically print the existing "Possible starvation in striped pool" WARN 
> with a stack trace — no new kind of log noise (the "Blocked system-critical 
> thread" message is already written for the same stripe).
> Also fixes a pre-existing volatile write order in Stripe.run() (lastStartedTs 
> before active = true) that could produce a false starvation WARN with a stale 
> start timestamp.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to