This is all really exciting.  Getting a built in, orchestrated repair is a
massive achievement.  Thank you for your work on this, it's incredibly
valuable to the community!!

Jon

On Sun, Mar 9, 2025 at 2:25 PM Jaydeep Chovatia <chovatia.jayd...@gmail.com>
wrote:

> No problem, Dave! Thank you.
>
> Jaydeep
>
> On Sun, Mar 9, 2025 at 10:46 AM Dave Herrington <he...@rhinosource.com>
> wrote:
>
>> Jaydeep,
>>
>> Thank you for taking time to answer my questions and for the links to the
>> design and overview docs, which are excellent and answer all of my
>> remaining questions.  Sorry I missed those links in the CEP page.
>>
>> Great work and I will continue to follow your progress on this powerful
>> new feature.
>>
>> Thanks!
>> -Dave
>>
>> On Sat, Mar 8, 2025 at 9:36 AM Jaydeep Chovatia <
>> chovatia.jayd...@gmail.com> wrote:
>>
>>> Hi David,
>>>
>>> Thanks for the kind words!
>>>
>>> >Is there a goal in this CEP to make automated repair work during
>>> rolling upgrades, when multiple versions exist in the cluster?
>>> We debated a lot on this over ASF Slack
>>> (#cassandra-repair-scheduling-cep37). The summary is that, ideally, we want
>>> to have a repair function during the mixed version, but the reality is that
>>> currently, there is no test suite available inside Apache Cassandra to
>>> verify the streaming behavior during the mixed version, so the confidence
>>> is low.
>>> We agreed on the following: 1) Keeping safety in mind, we should by
>>> default disable the repair during mixed version 2) Add a comprehensive test
>>> suite 3) Allow repair during mixed version. Currently, we are at #1
>>>
>>> >Would automated repair be smart enough to automatically stop, if it
>>> sees incompatible versions?
>>> That's the plan, and we already have PR (CASSANDRA-20048
>>> <https://issues.apache.org/jira/browse/CASSANDRA-20048>) out from Chris
>>> Lohfink. The thing we are debating is whether to stop only during major
>>> version mismatch or also during the minor version, and we are leaning
>>> towards only disabling for the major version mismatch. Regardless, this
>>> should be available soon.
>>> We are also extending this further as per feedback from David
>>> Capwell that we should automatically stop repair if we detect a new DC or
>>> keyspace RF is changed. That will be covered later as part of
>>> CASSANDRA-20414 <https://issues.apache.org/jira/browse/CASSANDRA-20414>
>>>
>>> >If automated repair must be disabled for the entire cluster, will this
>>> be a single nodetool command, or must automated repair be disabled on each
>>> node individually?
>>> Yes, it is a nodetool command and does not require any restarts! All the
>>> *nodetool* command details are currently covered in the design doc
>>> <https://docs.google.com/document/d/1CJWxjEi-mBABPMZ3VWJ9w5KavWfJETAGxfUpsViPcPo/edit?tab=t.0#heading=h.89fmsespiosd>,
>>> and the same details will also be available in the Cassandra
>>> overview.adoc
>>> <https://github.com/apache/cassandra/pull/3598/files?short_path=e901018#diff-e90101885c1188844bb4188d1301277bfdc4a9e1e705c4ab8a6cc5a4b44460c0>
>>> .
>>>
>>> >Would it make sense for automated repair to upgrade sstables, if it
>>> finds old formats? (Maybe this could be a feature that could be optionally
>>> enabled?)
>>> My opinion is that it should not be part of the repair. It is best
>>> suited as part of the Cassandra upgrade framework; I guess Paulo M is
>>> looking at it.
>>>
>>> >W.R.T. the repair logging tables in the system_distributed keyspace,
>>> will these tables have a configurable TTL, or must they be periodically
>>> truncated to limit their size?
>>> The number of entries will equal the number of Cassandra nodes in a
>>> cluster. There is no TTL because each row represents the repair status of
>>> that particular node. The entries would be automatically added/removed as
>>> nodes are added/removed from the Cassandra cluster.
>>>
>>> Jaydeep
>>>
>>> On Sat, Mar 8, 2025 at 7:46 AM Dave Herrington <he...@rhinosource.com>
>>> wrote:
>>>
>>>> Jaydeep,
>>>>
>>>> Thank you for your excellent efforts on this mission-critical feature.
>>>> The stated goals of CEP-37 are noble and stand to make valuable
>>>> improvements for cluster operations.  I look forward to testing these new
>>>> capabilities.
>>>>
>>>> My apologies up-front if you’ve already answered these questions.  I
>>>> did read the CEP a number of times and the linked JIRAs, but these are my
>>>> questions that I couldn’t answer myself.
>>>>
>>>> I’m interested to understand the goals of CEP-37 W.R.T. to rolling
>>>> upgrades of large clusters, as I am responsible for maintaining the cluster
>>>> operations runbooks for a number of customers.
>>>>
>>>> Operators have to navigate the upgrade gauntlet with automated repairs
>>>> disabled and get all nodes upgraded within gc_grace_seconds and then do a
>>>> full repair, before restarting automated repairs.
>>>>
>>>> I see that CASSANDRA-7530
>>>> https://issues.apache.org/jira/browse/CASSANDRA-7530 is related to
>>>> this.
>>>>
>>>> Is there a goal in this CEP to make automated repair work during
>>>> rolling upgrades, when multiple versions exist in the cluster?
>>>>
>>>> (I think this would imply that stopping automated repairs would no
>>>> longer be a pre-upgrade step.)
>>>>
>>>> Would automated repair be smart enough to automatically stop, if it
>>>> sees incompatible versions?
>>>>
>>>> Would automated repair continue between nodes with compatible versions,
>>>> or would it stop for the entire cluster?
>>>>
>>>> If automated repair must be disabled for the entire cluster, will this
>>>> be a single nodetool command, or must automated repair be disabled on each
>>>> node individually?
>>>>
>>>> Would it make sense for automated repair to upgrade sstables, if it
>>>> finds old formats? (Maybe this could be a feature that could be optionally
>>>> enabled?)
>>>>
>>>> W.R.T. the repair logging tables in the system_distributed keyspace,
>>>> will these tables have a configurable TTL, or must they be periodically
>>>> truncated to limit their size?
>>>>
>>>> Thanks,
>>>> -Dave
>>>>
>>>> David A. Herrington II
>>>> President and Chief Engineer
>>>> RhinoSource, Inc.
>>>>
>>>> *Data Lake Architecture, Cloud Computing and Advanced Analytics.*
>>>>
>>>> www.rhinosource.com
>>>>
>>>>
>>>> On Fri, Mar 7, 2025 at 11:48 AM Jaydeep Chovatia <
>>>> chovatia.jayd...@gmail.com> wrote:
>>>>
>>>>> Hello Everyone,
>>>>>
>>>>> I wanted to update you on CEP-37
>>>>> <https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-37+Apache+Cassandra+Unified+Repair+Solution>
>>>>>  (Jira:
>>>>> CASSANDRA-19918
>>>>> <https://issues.apache.org/jira/browse/CASSANDRA-19918>) work.
>>>>> Over the last year, some of us (Andy Tolbert, Chris Lohfink,
>>>>> Francisco Guerrero, and Kristijonas Zalys) have been working closely on
>>>>> making CEP-37 rock solid, with support from Josh McKenzie, Dinesh Joshi,
>>>>> and David Capwell.
>>>>> First and foremost, a huge thank you to everyone, including the
>>>>> broader Apache Cassandra community, for their invaluable contributions in
>>>>> making CEP-37 robust and solid!
>>>>>
>>>>> Here is the current status:
>>>>>
>>>>> *Feature stability*
>>>>>
>>>>>    - *Voted feature:* All the features mentioned in CEP-37 have
>>>>>    worked as expected.
>>>>>    - *Post-voted feature:* A few new minor improvements
>>>>>    
>>>>> <https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=272927365#CEP37ApacheCassandraUnifiedRepairSolution-Post-VoteUpdates>
>>>>>    have been added to post-voting, and they are also working as expected.
>>>>>    - Tested the functionality by multiple people over the period of
>>>>>    time.
>>>>>    - Some other facts: it has already been validated at scale
>>>>>    <https://www.youtube.com/watch?v=xFicEj6Nhq8>. Another big
>>>>>    Cassandra use case is in the process of validating/adopting it in their
>>>>>    environment.
>>>>>
>>>>> *Source Code*
>>>>>
>>>>>    - It is an opt-in feature; nobody notices anything unless someone
>>>>>    opts in.
>>>>>    - By default, this feature is pretty isolated (in a separate
>>>>>    package) from the source code point of view (94% of the source code
>>>>>    lines are in the new files)
>>>>>    - A thorough documentation has been added:
>>>>>       - overview.doc
>>>>>       - metrics.doc
>>>>>       - cassandra.yaml doc
>>>>>       - NEWS.txt overview
>>>>>    - Five people (Andy Tolbert, Chris Lohfink, Francisco Guerrero,
>>>>>    and Kristijonas Zalys) have contributed.
>>>>>    - The source code has been reviewed multiple times by the same
>>>>>    five people.
>>>>>
>>>>> *Test Coverage*
>>>>>
>>>>>    - A comprehensive test coverage has been added to cover all
>>>>>    aspects.
>>>>>    - The entire test suite has been passing
>>>>>
>>>>>
>>>>> We are in the final review phase and nearly ready to merge. If anyone
>>>>> has any last-minute feedback, this is the final opportunity for review.
>>>>>
>>>>> Thank you!
>>>>> Andy Tolbert, Chris Lohfink, Francisco Guerrero, Kristijonas Zalys,
>>>>> and Jaydeep
>>>>>
>>>>
>>
>> --
>> -Dave
>>
>> David A. Herrington II
>> President and Chief Engineer
>> RhinoSource, Inc.
>>
>> *Data Lake Architecture, Cloud Computing and Advanced Analytics.*
>>
>> www.rhinosource.com
>>
>

Reply via email to