[
https://issues.apache.org/jira/browse/CASSANDRA-20187?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andy Tolbert reassigned CASSANDRA-20187:
----------------------------------------
Assignee: Andy Tolbert
> 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
> Assignee: Andy Tolbert
> Priority: Normal
>
> 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: [email protected]
For additional commands, e-mail: [email protected]