thelastpickle / cassandra-reaper

Automated Repair Awesomeness for Apache Cassandra
http://cassandra-reaper.io/
Apache License 2.0
486 stars 217 forks source link

Subrange incremental repair #1509

Closed adejanovski closed 3 months ago

adejanovski commented 3 months ago

Fixes #1502

Before reviewing, please ensure you're aware of our PR review guidelines.

Here are the key changes in this PR:

Dependency Update

New Configuration Options for Incremental Repair

Configuration Changes

Checkstyle Configuration Update

CLI Enhancements

Code Adjustments for Repair Functionality

Database Interaction

Miscellaneous Adjustments

By introducing subrangeIncrementalRepair, this PR enhances the repair flexibility for large clusters, particularly those running on Cassandra 4.0 or later. This mode allows for more efficient repairs by dividing the repair process into smaller, manageable subranges, potentially improving performance and reducing repair time.

michaelsembwever commented 3 months ago

ton of work here, lgtm, just some comments wrt readability and safety.

what does concern me is if this addresses the primary reason (as far as we know) to want to use subrange IR – to break up and pace out the IR+anti-compactions to a rate and load that stabilises the cluster…

how do we know subranges are optimal for this ?

adejanovski commented 3 months ago

what does concern me is if this addresses the primary reason (as far as we know) to want to use subrange IR – to break up and pace out the IR+anti-compactions to a rate and load that stabilises the cluster… how do we know subranges are optimal for this ?

We don't, and I guess it depends on factors that we don't control. Since this has been requested and is allowed by Cassandra 4, I think it's ok to give the option and let users find the best solution for their clusters. The good part here is that the number of segments is tunable, so one can find a sweet spot even with large numbers of vnodes.

adejanovski commented 3 months ago

Comments addressed, ready for another review @michaelsembwever