You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Andy Tolbert (Jira)" <ji...@apache.org> on 2025/01/06 22:41:00 UTC
[jira] [Created] (CASSANDRA-20187) Add metrics to RepairTokenRangeSplitter
Andy Tolbert created CASSANDRA-20187:
----------------------------------------
Summary: Add metrics to RepairTokenRangeSplitter
Key: CASSANDRA-20187
URL: https://issues.apache.org/jira/browse/CASSANDRA-20187
Project: Apache Cassandra
Issue Type: Improvement
Reporter: Andy Tolbert
While experimenting with {{RepairTokenRangeSplitter}} I found myself often consulting logs to see how it was splitting up repair assignments by bytes or partitions.
It would improve observability to expose some metrics at a table level by repair type around how the splitter breaks up work, some ideas:
* # assignments created
* bytes per assignment
* partitions per assignment
* # skipped assignments
* skipped bytes
Some examples of what we're currently surfacing in logs:
{noformat}
2025-01-05 03:23:09,568 INFO [AutoRepair-Repair-incremental:1] org.apache.cassandra.repair.autorepair.RepairTokenRangeSplitter - Adding SizedRepairAssignment{description='full primary range for table', tokenRange=(-9223372036854775808,-7686143364045646507], keyspaceName='x', tableNames=[y], estimatedBytes=7.34 GiB}, increasing repair bytes to 7.34 GiB of 100GiB
2025-01-05 03:23:09,568 INFO [AutoRepair-Repair-incremental:1] org.apache.cassandra.repair.autorepair.RepairTokenRangeSplitter - Returning 1 assignment(s) for priorityBucket 0 and keyspace x, totaling 7.34 GiB (7.34 GiB of 100GiB overall) {noformat}
{noformat}
2025-01-03 23:48:07,766 INFO [AutoRepair-Repair-full:1] org.apache.cassandra.repair.autorepair.RepairTokenRangeSplitter - Splitting x.y for range (1537228672809129301,3074457345618258602] into 6 sub ranges by partitions (splitsForSize=1, splitsForPartitions=6, approximateBytesInRange=2.25 GiB, approximatePartitionsInRange=5892606, approximateBytesPerSplit=383.37 MiB, approximatePartitionsPerSplit=982101)
2025-01-03 23:48:07,768 INFO [AutoRepair-Repair-full:1] org.apache.cassandra.repair.autorepair.RepairTokenRangeSplitter - Adding SizedRepairAssignment{description='subrange 1 of 6', tokenRange=(1793433451610650840,2049638230412172350], keyspaceName='x', tableNames=[y], estimatedBytes=383.37 MiB}, increasing repair bytes to 383.39 MiB
2025-01-03 23:48:07,768 INFO [AutoRepair-Repair-full:1] org.apache.cassandra.repair.autorepair.RepairTokenRangeSplitter - Adding SizedRepairAssignment{description='subrange 2 of 6', tokenRange=(2305843009213693951,2562047788015215399], keyspaceName='x', tableNames=[y], estimatedBytes=383.37 MiB}, increasing repair bytes to 766.76 MiB
... {noformat}
{noformat}
INFO [AutoRepair-Repair-incremental:1] 2025-01-03 17:09:48,438 RepairTokenRangeSplitter.java:424 - Adding SizedRepairAssignment{description='subrange 1 of 16', tokenRange=(3628454496450787640,3695689239027386361], keyspaceName='ks', tableNames=[t1], estimatedBytes=1001.35 KiB}, increasing repair bytes to 1001.35 KiB of 1MiB
WARN [AutoRepair-Repair-incremental:1] 2025-01-03 17:09:48,438 RepairTokenRangeSplitter.java:415 - Skipping SizedRepairAssignment{description='subrange 2 of 16', tokenRange=(3762923981603985083,3830158724180583804], keyspaceName='ks', tableNames=[t1], estimatedBytes=1001.35 KiB} because it would increase total repair bytes to 1.96 MiB of 1MiB {noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org