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