> I actually think we should be looking at how we can move things out of the database process.
While worth pursuing, I think we would need a different CEP just to figure out how to do that. Not only is there a lot of infrastructure difficulty in running multi process, the inter app communication needs to be figured out better then JMX. Even the sidecar we dont have a solid story on how to ensure both are running or anything yet. It's up to each app owner to figure it out. Once we have a good thing in place I think we can start moving compactions, repairs, etc out of the database. Even then it's the _repairs_ that is expensive, not the scheduling. On Mon, Oct 21, 2024 at 9:45 AM Jeremiah Jordan <jeremiah.jor...@gmail.com> wrote: > I love the idea of a repair service being there by default for an install > of C*. My main concern here is that it is putting more services into the > main database process. I actually think we should be looking at how we can > move things out of the database process. The C* process being a giant > monolith has always been a pain point. Is there anyway it makes sense for > this to be an external process rather than a new thread pool inside the C* > process? > > -Jeremiah Jordan > > On Oct 18, 2024 at 2:58:15 PM, Mick Semb Wever <m...@apache.org> wrote: > >> >> This is looking strong, thanks Jaydeep. >> >> I would suggest folk take a look at the design doc and the PR in the >> CEP. A lot is there (that I have completely missed). >> >> I would especially ask all authors of prior art (Reaper, DSE nodesync, >> ecchronos) to take a final review of the proposal >> >> Jaydeep, can we ask for a two week window while we reach out to these >> people ? There's a lot of prior art in this space, and it feels like we're >> in a good place now where it's clear this has legs and we can use that to >> bring folk in and make sure there's no remaining blindspots. >> >> >> On Fri, 18 Oct 2024 at 01:40, Jaydeep Chovatia < >> chovatia.jayd...@gmail.com> wrote: >> >>> Sorry, there is a typo in the CEP-37 link; here is the correct link >>> <https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-37+Apache+Cassandra+Unified+Repair+Solution> >>> >>> >>> On Thu, Oct 17, 2024 at 4:36 PM Jaydeep Chovatia < >>> chovatia.jayd...@gmail.com> wrote: >>> >>>> First, thank you for your patience while we strengthened the CEP-37. >>>> >>>> >>>> Over the last eight months, Chris Lohfink, Andy Tolbert, Josh McKenzie, >>>> Dinesh Joshi, Kristijonas Zalys, and I have done tons of work (online >>>> discussions/a dedicated Slack channel #cassandra-repair-scheduling-cep37) >>>> to come up with the best possible design that not only significantly >>>> simplifies repair operations but also includes the most common features >>>> that everyone will benefit from running at Scale. >>>> >>>> For example, >>>> >>>> - >>>> >>>> Apache Cassandra must be capable of running multiple repair types, >>>> such as Full, Incremental, Paxos, and Preview - so the framework should >>>> be >>>> easily extendable with no additional overhead from the operator’s point >>>> of >>>> view. >>>> - >>>> >>>> An easy way to extend the token-split calculation algorithm with a >>>> default implementation should exist. >>>> - >>>> >>>> Running incremental repair reliably at Scale is pretty challenging, >>>> so we need to place safeguards, such as migration/rollback w/o restart >>>> and >>>> stopping incremental repair automatically if the disk is about to get >>>> full. >>>> >>>> We are glad to inform you that CEP-37 (i.e., Repair inside Cassandra) >>>> is now officially ready for review after multiple rounds of design, >>>> testing, code reviews, documentation reviews, and, more importantly, >>>> validation that it runs at Scale! >>>> >>>> >>>> Some facts about CEP-37. >>>> >>>> - >>>> >>>> Multiple members have verified all aspects of CEP-37 numerous times. >>>> - >>>> >>>> The design proposed in CEP-37 has been thoroughly tried and tested >>>> on an immense scale (hundreds of unique Cassandra clusters, tens of >>>> thousands of Cassandra nodes, with tens of millions of QPS) on top of >>>> 4.1 >>>> open-source for more than five years; please see more details here >>>> >>>> <https://www.uber.com/en-US/blog/how-uber-optimized-cassandra-operations-at-scale/> >>>> . >>>> - >>>> >>>> The following presentation >>>> >>>> <https://docs.google.com/presentation/d/1Zilww9c7LihHULk_ckErI2s4XbObxjWknKqRtbvHyZc/edit#slide=id.g30a4fd4fcf7_0_13> >>>> highlights the rigorous applied to CEP-37, which was given during last >>>> week’s Apache Cassandra Bay Area Meetup >>>> <https://www.meetup.com/apache-cassandra-bay-area/events/303469006/> >>>> , >>>> >>>> >>>> Since things are massively overhauled, we believe it is almost ready >>>> for a final pass pre-VOTE. We would like you to please review the >>>> CEP-37 >>>> <https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-37+Apache+Cassandra+Unified+Repair+Solution)> >>>> and the associated detailed design doc >>>> <https://docs.google.com/document/d/1CJWxjEi-mBABPMZ3VWJ9w5KavWfJETAGxfUpsViPcPo/edit#heading=h.r112r46toau0> >>>> . >>>> >>>> Thank you everyone! >>>> >>>> Chris, Andy, Josh, Dinesh, Kristijonas, and Jaydeep >>>> >>>> >>>> >>>> On Thu, Sep 19, 2024 at 11:26 AM Josh McKenzie <jmcken...@apache.org> >>>> wrote: >>>> >>>>> Not quite; finishing touches on the CEP and design doc are in flight >>>>> (as of last / this week). >>>>> >>>>> Soon(tm). >>>>> >>>>> On Thu, Sep 19, 2024, at 2:07 PM, Patrick McFadin wrote: >>>>> >>>>> Is this CEP ready for a VOTE thread? >>>>> https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-37+%28DRAFT%29+Apache+Cassandra+Unified+Repair+Solution >>>>> >>>>> On Sun, Feb 25, 2024 at 12:25 PM Jaydeep Chovatia < >>>>> chovatia.jayd...@gmail.com> wrote: >>>>> >>>>> Thanks, Josh. I've just updated the CEP >>>>> <https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-37+%28DRAFT%29+Apache+Cassandra+Official+Repair+Solution> >>>>> and included all the solutions you mentioned below. >>>>> >>>>> Jaydeep >>>>> >>>>> On Thu, Feb 22, 2024 at 9:33 AM Josh McKenzie <jmcken...@apache.org> >>>>> wrote: >>>>> >>>>> >>>>> Very late response from me here (basically necro'ing this thread). >>>>> >>>>> I think it'd be useful to get this condensed into a CEP that we can >>>>> then discuss in that format. It's clearly something we all agree we need >>>>> and having an implementation that works, even if it's not in your >>>>> preferred >>>>> execution domain, is vastly better than nothing IMO. >>>>> >>>>> I don't have cycles (nor background ;) ) to do that, but it sounds >>>>> like you do Jaydeep given the implementation you have on a private fork + >>>>> design. >>>>> >>>>> A non-exhaustive list of things that might be useful incorporating >>>>> into or referencing from a CEP: >>>>> Slack thread: >>>>> https://the-asf.slack.com/archives/CK23JSY2K/p1690225062383619 >>>>> Joey's old C* ticket: >>>>> https://issues.apache.org/jira/browse/CASSANDRA-14346 >>>>> Even older automatic repair scheduling: >>>>> https://issues.apache.org/jira/browse/CASSANDRA-10070 >>>>> Your design gdoc: >>>>> https://docs.google.com/document/d/1CJWxjEi-mBABPMZ3VWJ9w5KavWfJETAGxfUpsViPcPo/edit#heading=h.r112r46toau0 >>>>> PR with automated repair: >>>>> https://github.com/jaydeepkumar1984/cassandra/commit/ef6456d652c0d07cf29d88dfea03b73704814c2c >>>>> >>>>> My intuition is that we're all basically in agreement that this is >>>>> something the DB needs, we're all willing to bikeshed for our personal >>>>> preference on where it lives and how it's implemented, and at the end of >>>>> the day, code talks. I don't think anyone's said they'll die on the hill >>>>> of >>>>> implementation details, so that feels like CEP time to me. >>>>> >>>>> If you were willing and able to get a CEP together for automated >>>>> repair based on the above material, given you've done the work and have >>>>> the >>>>> proof points it's working at scale, I think this would be a *huge >>>>> contribution* to the community. >>>>> >>>>> On Thu, Aug 24, 2023, at 7:26 PM, Jaydeep Chovatia wrote: >>>>> >>>>> Is anyone going to file an official CEP for this? >>>>> As mentioned in this email thread, here is one of the solution's design >>>>> doc >>>>> <https://docs.google.com/document/d/1CJWxjEi-mBABPMZ3VWJ9w5KavWfJETAGxfUpsViPcPo/edit#heading=h.r112r46toau0> >>>>> and source code on a private Apache Cassandra patch. Could you go through >>>>> it and let me know what you think? >>>>> >>>>> Jaydeep >>>>> >>>>> On Wed, Aug 2, 2023 at 3:54 PM Jon Haddad <rustyrazorbl...@apache.org> >>>>> wrote: >>>>> >>>>> > That said I would happily support an effort to bring repair >>>>> scheduling to the sidecar immediately. This has nothing blocking it, and >>>>> would potentially enable the sidecar to provide an official repair >>>>> scheduling solution that is compatible with current or even previous >>>>> versions of the database. >>>>> >>>>> This is something I hadn't thought much about, and is a pretty good >>>>> argument for using the sidecar initially. There's a lot of deployments >>>>> out >>>>> there and having an official repair option would be a big win. >>>>> >>>>> >>>>> On 2023/07/26 23:20:07 "C. Scott Andreas" wrote: >>>>> > I agree that it would be ideal for Cassandra to have a repair >>>>> scheduler in-DB. >>>>> > >>>>> > That said I would happily support an effort to bring repair >>>>> scheduling to the sidecar immediately. This has nothing blocking it, and >>>>> would potentially enable the sidecar to provide an official repair >>>>> scheduling solution that is compatible with current or even previous >>>>> versions of the database. >>>>> > >>>>> > Once TCM has landed, we’ll have much stronger primitives for repair >>>>> orchestration in the database itself. But I don’t think that should block >>>>> progress on a repair scheduling solution in the sidecar, and there is >>>>> nothing that would prevent someone from continuing to use a sidecar-based >>>>> solution in perpetuity if they preferred. >>>>> > >>>>> > - Scott >>>>> > >>>>> > > On Jul 26, 2023, at 3:25 PM, Jon Haddad < >>>>> rustyrazorbl...@apache.org> wrote: >>>>> > > >>>>> > > I'm 100% in favor of repair being part of the core DB, not the >>>>> sidecar. The current (and past) state of things where running the DB >>>>> correctly *requires* running a separate process (either community >>>>> maintained or official C* sidecar) is incredibly painful for folks. The >>>>> idea that your data integrity needs to be opt-in has never made sense to >>>>> me >>>>> from the perspective of either the product or the end user. >>>>> > > >>>>> > > I've worked with way too many teams that have either configured >>>>> this incorrectly or not at all. >>>>> > > >>>>> > > Ideally Cassandra would ship with repair built in and on by >>>>> default. Power users can disable if they want to continue to maintain >>>>> their own repair tooling for some reason. >>>>> > > >>>>> > > Jon >>>>> > > >>>>> > >> On 2023/07/24 20:44:14 German Eichberger via dev wrote: >>>>> > >> All, >>>>> > >> We had a brief discussion in [2] about the Uber article [1] where >>>>> they talk about having integrated repair into Cassandra and how great that >>>>> is. I expressed my disappointment that they didn't work with the community >>>>> on that (Uber, if you are listening time to make amends 🙂) and it turns >>>>> out Joey already had the idea and wrote the code [3] - so I wanted to >>>>> start >>>>> a discussion to gauge interest and maybe how to revive that effort. >>>>> > >> Thanks, >>>>> > >> German >>>>> > >> [1] >>>>> https://www.uber.com/blog/how-uber-optimized-cassandra-operations-at-scale/ >>>>> > >> [2] >>>>> https://the-asf.slack.com/archives/CK23JSY2K/p1690225062383619 >>>>> > >> [3] https://issues.apache.org/jira/browse/CASSANDRA-14346 >>>>> > >>>>> >>>>> >>>>> >>>>>