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

Paulo Motta commented on CASSANDRA-17440:
-----------------------------------------

I think the best place to implement this is in 
[ActiveCompactions|https://github.com/apache/cassandra/blob/bf96367f4d55692017e144980cf17963e31df127/src/java/org/apache/cassandra/db/compaction/ActiveCompactions.java].

Instead of updating compaction progress [only at the 
end|https://github.com/apache/cassandra/blob/bf96367f4d55692017e144980cf17963e31df127/src/java/org/apache/cassandra/db/compaction/ActiveCompactions.java#L48],
 we would schedule a periodic reporter task for each active compaction and stop 
the task when compaction is completed.

Something along these lines:
{code:java}
class ActiveCompactions {

void beginCompactions(CompactionInfo.Holder ci)
{
    future = schedule(() -> reportInfo(ci), 
getProperty("cassandra.compacted_bytes_reporter_period", 1), TimeUnit.MINUTES)
}

void reportInfo(CompactionInfo.Holder ci)
{
    CompactionInfo info = ci.getCompactionInfo();
    long compactedBytes = computeDelta(info);
    CompactionManager.instance.getMetrics().bytesCompacted.inc(compactedBytes);
}

void endCompaction(CompactionInfo.Holder ci)
{
    reportInfo(ci):
    future.cancel();
}

}
{code}
Please let me know what do you think of this approach.

> Report compacted bytes metric periodically
> ------------------------------------------
>
>                 Key: CASSANDRA-17440
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-17440
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Local/Compaction
>            Reporter: Paulo Motta
>            Priority: Normal
>
> Currently the compacted bytes metrics are incremented only at the end of the 
> compaction, which can take a long time to update for long running compactions.
> We should periodically (ie. every 1 minute, configurable) update the 
> compacted bytes metric to improve compaction throughput observability.
> This is issue is analogous of CASSANDRA-16325 but for compaction instead of 
> streaming.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to