While I agree that time spent working on a feature is not necessarily a clear 
indicator of maturity, one can judge the scope of work and thought that went 
into Accord by both its separate repository, and the working branch. 

I think that merging/accepting SASI was not a mistake. There were several 
efforts to make it work, and back in 2016 we could've made it quite viable with 
just CASSANDRA-11990 and a lot of testing. It did get superseded by SAI, but I 
can imagine a universe where SASI would have been developed into a stable 
feature. 

> is there a known path forward to fix the drop schema w nodes down issue and 
> anything written on it?
Yes, there is a clear known path for fixing schema changes, and gladly they do 
not require a protocol change, just a slightly deeper integration with TCM.


On Fri, Mar 7, 2025, at 4:44 PM, Jordan West wrote:
> I would love to have my questions answered and see some graphs I don’t think 
> those are unreasonable asks nor do they take away from the awesome work done. 
> I was suggesting 1-2 weeks for folks to have the opportunity to produce that 
> data if the original authors didn’t have time. I also don’t think that’s 
> unreasonable. but to be clear I’m not blocking anything. If folks want to 
> merge I am not objecting.
> 
> I do think we should hold features to a high standard and personally “time 
> worked on a feature” is not a criteria for me when considering why we should 
> merge. It is absolutely worth recognizing and celebrating the massive invest 
> and effort made here. It’s just an orthogonal point to me. As a contrived 
> example: If 15452 was not as impactful performance wise after a year of on 
> and off work I would’ve happily continue to address it or take a different 
> approach. SASI took a year and a half or more and I still regret that we 
> merged it into 3.x in the form we did using the same early contribution 
> model. That was an example of an extreme, and out of our control case, of an 
> entire team disbanding right after merge. 
> 
> Jordan 
> 
> On Fri, Mar 7, 2025 at 06:28 Jon Haddad <j...@rustyrazorblade.com> wrote:
>> I defer to the judgement of the folks that are most impacted by it - ones 
>> that are in the code, working on the next release.  If you all think it's 
>> good to merge, then I am 100% in support of it.  I suspect merging will help 
>> get it out faster, and I don't see any future in which we don't ship this in 
>> the next release.
>> 
>> I will be happy to help answer the "how does it compare to paxos v2" 
>> question post-merge.
>> 
>> Jon
>> 
>> 
>> 
>> On Fri, Mar 7, 2025 at 5:52 AM Josh McKenzie <jmcken...@apache.org> wrote:
>>> __
>>> 3.5 years is an incredible amount of time and work; it really is 
>>> significant and thanks to everyone involved for the investment of time and 
>>> energy.
>>> 
>>> We have a rocky history with large, disruptive contributions in the past 
>>> that have either blocked forward progress post-merge (CASSANDRA-8099), or 
>>> lingered in the code-base increasing maintenance burden on other 
>>> contributors for minimal or no user benefit (early open post SSD 
>>> transition, witness replicas, materialized views). I'm sympathetic to where 
>>> Jordan's questions stem from, as our history of leaving things in the 
>>> codebase long after they've become vestigial or abandoned has slowed down 
>>> our collective momentum maintaining the project on actively used features.
>>> 
>>> That said, I don't think Accord will run afoul of some of those same 
>>> patterns. Aside from the degree of investment already in it and sheer 
>>> number of pmc members and committers involved, I believe it's a feature 
>>> that's universally impactful and that if we had a metaphorical bus-factor 
>>> change (entire group of people working on it disappeared the day after 
>>> merge or decided to go on vacation for 5 years), others in the community 
>>> would be willing to pick things up and keep it moving given its proximity 
>>> to release readiness.
>>> 
>>> The 2 questions Jordan asked resonate with me: 1) do we have line of sight 
>>> to a fix on the schema issues, and I'll take the liberty of reframing 2) do 
>>> we have line of sight to improvement on the performance front to be usable 
>>> for multi-key transactions? (subtle: I don't think "parity with PaxosV2" is 
>>> the right target, but rather "fast enough to be usable for multi-key 
>>> transactions" since it's a new query paradigm).
>>> 
>>> Given the context on contributor backing and if the answer is yes to those 
>>> 2 questions (which I believe it is), I think we should generally be 
>>> comfortable with merging the feature as experimental at this time.
>>> 
>>> On Fri, Mar 7, 2025, at 12:54 AM, Benedict wrote:
>>>> 
>>>> There are essentially three possible timelines to choose from here: 
>>>> 
>>>> 1) We agree in the next few days to merge to trunk. We will then 
>>>> prioritise rebasing onto trunk and resolving any pre-merge items starting 
>>>> next week.
>>>> 2) There’s some more debate and agreement to merge to trunk in a week or 
>>>> two. In the meantime we will shift to internal-first development but we’ll 
>>>> likely prioritise the above work as soon as we can, which may be in a few 
>>>> weeks, so we can shift to trunk first development.
>>>> 3) We don’t agree to merge accord anytime soon, so we shift to 
>>>> internal-first development for the time being. I’m not sure when we will 
>>>> prioritise any of the above.
>>>> 
>>>> Our resources are finite and we’ve exhausted them (literally), so it’s 
>>>> pretty much pick one of the above. I don’t really mind which you pick, but 
>>>> I won’t personally be prioritising merge after this third attempt.
>>>> 
>>>> 
>>>>> On 6 Mar 2025, at 22:01, Jon Haddad <j...@rustyrazorblade.com> wrote:
>>>>> 
>>>>> Hmm... I took a look at the cep-15-accord branch in GitHub, it looks like 
>>>>> it's several hundred commits behind trunk.  Since you'll need to rebase 
>>>>> again before merge *anyways*, would it make sense to do it once more, and 
>>>>> I can publish easy-cass-lab with the latest branch?  If folks have 
>>>>> concerns, it's easy to fire up a cluster (I do it constantly) and try it 
>>>>> out.
>>>>> 
>>>>> I think if we were to do this, out of consideration we should time box 
>>>>> the amount of time for an evaluation and unless someone raises an 
>>>>> objection, consider lazy consensus achieved.
>>>>> 
>>>>> Jon
>>>>> 
>>>>> 
>>>>> 
>>>>> On Thu, Mar 6, 2025 at 12:46 PM Benedict Elliott Smith 
>>>>> <bened...@apache.org> wrote:
>>>>>> Because we want to validate against the latest code in trunk, else we 
>>>>>> are validating stale behaviours. The cost of rebasing is high, so we do 
>>>>>> not do it frequently. That means we will likely stop developing 
>>>>>> OSS-first, as the focus will have to move to our internal branch that 
>>>>>> satisfies these criteria.
>>>>>> 
>>>>>> Exactly what this might be for upstreaming I cannot say. Personally, I 
>>>>>> aim to work exclusively on the branch we are stabilising. If that is not 
>>>>>> trunk, the latency for my contributions being made public might be high, 
>>>>>> as I have a huge imbalance of over-investment to recoup, and anything 
>>>>>> unnecessary will be deferred.
>>>>>> 
>>>>>> Since the feature is disabled, and the code is almost entirely isolated, 
>>>>>> I cannot imagine the cost to the community to removing this work would 
>>>>>> be very high. But, I do not intend to argue Accord’s case here. I will 
>>>>>> let you all decide.
>>>>>> 
>>>>>> Please decide soon though, as it shapes our work planning. The positive 
>>>>>> reception so far had lead me to consider prioritising a move to 
>>>>>> trunk-first development within the next week or two, and the associated 
>>>>>> work that entails. However, if that was optimistic we will have to shift 
>>>>>> our plans.
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>>> On 6 Mar 2025, at 20:16, Jordan West <jw...@apache.org> wrote:
>>>>>>> 
>>>>>>> The work and effort in accord has been amazing. And I’m sure it sets a 
>>>>>>> new standard for code quality and correctness testing which I’m also 
>>>>>>> entirely behind. I also trust the folks working on it want to take it 
>>>>>>> to the a fully production ready solution. But I’m worried about 
>>>>>>> circumstances out of our control leaving us with a very complex feature 
>>>>>>> that isn’t complete. 
>>>>>>> 
>>>>>>> I do have some questions. Could folks help me better understand why 
>>>>>>> testing real workloads necessitates a merge (my understanding from the 
>>>>>>> original reason is this is the impetus for why we would merge now)? 
>>>>>>> Also I think the performance and scheme change caveats are rather large 
>>>>>>> ones. One of accords promise was better performance and I think making 
>>>>>>> schema changes with nodes down not being supported is a big gap. Could 
>>>>>>> we have some criteria like “supports all the operations PaxosV2 
>>>>>>> supports” or “performs as well or better than PaxosV2 on 
>>>>>>> [workload(s)]”? 
>>>>>>> 
>>>>>>> I understand waiting asks a lot of the authors in terms of baring the 
>>>>>>> burden of a more complex merge. But I think we also need to consider 
>>>>>>> what merging is asking the community to bear if the worst happens and 
>>>>>>> we are unable to take the feature from its current state to something 
>>>>>>> that can be widely used in production.
>>>>>>> 
>>>>>>> Jordan 
>>>>>>> 
>>>>>>> 
>>>>>>> On Wed, Mar 5, 2025 at 15:52 Blake Eggleston <bl...@ultrablake.com> 
>>>>>>> wrote:
>>>>>>>> __
>>>>>>>> +1 to merging it
>>>>>>>> 
>>>>>>>> On Wed, Mar 5, 2025, at 12:22 PM, Patrick McFadin wrote:
>>>>>>>>> You have my +1
>>>>>>>>> 
>>>>>>>>> On Wed, Mar 5, 2025 at 12:16 PM Benedict <bened...@apache.org> wrote:
>>>>>>>>> >
>>>>>>>>> > Correct, these caveats should only apply to tables that have 
>>>>>>>>> > opted-in to accord.
>>>>>>>>> >
>>>>>>>>> > On 5 Mar 2025, at 20:08, Jeremiah Jordan <jerem...@apache.org> 
>>>>>>>>> > wrote:
>>>>>>>>> >
>>>>>>>>> > 
>>>>>>>>> > So great to see all this hard work about to pay off!
>>>>>>>>> >
>>>>>>>>> > On the questions/concerns front, the only concern I would have 
>>>>>>>>> > towards merging this to trunk is if any of the caveats apply when 
>>>>>>>>> > someone is not using Accord.  Assuming they only apply when the 
>>>>>>>>> > feature flag is enabled, I see no reason not to get this merged 
>>>>>>>>> > into trunk once everyone involved is happy with the state of it.
>>>>>>>>> >
>>>>>>>>> > -Jeremiah
>>>>>>>>> >
>>>>>>>>> > On Mar 5, 2025 at 12:15:23 PM, Benedict Elliott Smith 
>>>>>>>>> > <bened...@apache.org> wrote:
>>>>>>>>> >>
>>>>>>>>> >> That depends on all of you lovely people :D
>>>>>>>>> >>
>>>>>>>>> >> I think we should have finished merging everything we want before 
>>>>>>>>> >> QA by ~Monday; certainly not much later.
>>>>>>>>> >>
>>>>>>>>> >> I think we have some upgrade and python dtest failures to address 
>>>>>>>>> >> as well.
>>>>>>>>> >>
>>>>>>>>> >> So it could be pretty soon if the community is supportive.
>>>>>>>>> >>
>>>>>>>>> >> On 5 Mar 2025, at 17:22, Patrick McFadin <pmcfa...@gmail.com> 
>>>>>>>>> >> wrote:
>>>>>>>>> >>
>>>>>>>>> >>
>>>>>>>>> >> What is the timing for starting the merge process? I'm asking 
>>>>>>>>> >> because
>>>>>>>>> >>
>>>>>>>>> >> I have (yet another) presentation and this would be a cool update.
>>>>>>>>> >>
>>>>>>>>> >>
>>>>>>>>> >> On Wed, Mar 5, 2025 at 1:22 AM Benedict Elliott Smith
>>>>>>>>> >>
>>>>>>>>> >> <bened...@apache.org> wrote:
>>>>>>>>> >>
>>>>>>>>> >> >
>>>>>>>>> >>
>>>>>>>>> >> > Thanks everyone.
>>>>>>>>> >>
>>>>>>>>> >> >
>>>>>>>>> >>
>>>>>>>>> >> > Jon - your help will be greatly appreciated. We’ll let you know 
>>>>>>>>> >> > when we’ve got the cycles to invest in performance work 
>>>>>>>>> >> > (hopefully fairly soon). I expect the first step will be 
>>>>>>>>> >> > improving visibility so we can better understand what the system 
>>>>>>>>> >> > is doing (particularly the caching layers), but we can dig in 
>>>>>>>>> >> > together when ready.
>>>>>>>>> >>
>>>>>>>>> >> >
>>>>>>>>> >>
>>>>>>>>> >> > On 4 Mar 2025, at 18:15, Jon Haddad <j...@rustyrazorblade.com> 
>>>>>>>>> >> > wrote:
>>>>>>>>> >>
>>>>>>>>> >> >
>>>>>>>>> >>
>>>>>>>>> >> > Very exciting!
>>>>>>>>> >>
>>>>>>>>> >> >
>>>>>>>>> >>
>>>>>>>>> >> > I have a client that's very interested in Accord, so I should 
>>>>>>>>> >> > have budget to dig into it, especially on the performance side 
>>>>>>>>> >> > of things.
>>>>>>>>> >>
>>>>>>>>> >> >
>>>>>>>>> >>
>>>>>>>>> >> > Jon
>>>>>>>>> >>
>>>>>>>>> >> >
>>>>>>>>> >>
>>>>>>>>> >> > On Tue, Mar 4, 2025 at 9:57 AM Dmitry Konstantinov 
>>>>>>>>> >> > <netud...@gmail.com> wrote:
>>>>>>>>> >>
>>>>>>>>> >> >>
>>>>>>>>> >>
>>>>>>>>> >> >> Thank you to all Accord and TCM contributors, it is really 
>>>>>>>>> >> >> exciting to see a development of such huge and wonderful 
>>>>>>>>> >> >> features moving forward and opening the door to the new 
>>>>>>>>> >> >> Cassandra epoch!
>>>>>>>>> >>
>>>>>>>>> >> >>
>>>>>>>>> >>
>>>>>>>>> >> >> On Tue, 4 Mar 2025 at 20:45, Blake Eggleston 
>>>>>>>>> >> >> <bl...@ultrablake.com> wrote:
>>>>>>>>> >>
>>>>>>>>> >> >>>
>>>>>>>>> >>
>>>>>>>>> >> >>> Thanks Benedict!
>>>>>>>>> >>
>>>>>>>>> >> >>>
>>>>>>>>> >>
>>>>>>>>> >> >>> I’m really excited to see accord reach this milestone, even 
>>>>>>>>> >> >>> with these caveats. You seem to have left yourself off the 
>>>>>>>>> >> >>> list of contributors though, even though you’ve been a central 
>>>>>>>>> >> >>> figure in its development :) So thanks to all accord & tcm 
>>>>>>>>> >> >>> contributors, including Benedict, for making this possible!
>>>>>>>>> >>
>>>>>>>>> >> >>>
>>>>>>>>> >>
>>>>>>>>> >> >>> On Tue, Mar 4, 2025, at 8:00 AM, Benedict Elliott Smith wrote:
>>>>>>>>> >>
>>>>>>>>> >> >>>
>>>>>>>>> >>
>>>>>>>>> >> >>> Hi everyone,
>>>>>>>>> >>
>>>>>>>>> >> >>>
>>>>>>>>> >>
>>>>>>>>> >> >>> It’s been exactly 3.5 years since the first commit to 
>>>>>>>>> >> >>> cassandra-accord. Yes, really, it’s been that long.
>>>>>>>>> >>
>>>>>>>>> >> >>>
>>>>>>>>> >>
>>>>>>>>> >> >>> We will be starting to validate the feature against real 
>>>>>>>>> >> >>> workloads in the near future, so we can’t sensibly push off 
>>>>>>>>> >> >>> merging much longer. The following is a brief run-down of the 
>>>>>>>>> >> >>> state of play. There are no known bugs, but there remain a 
>>>>>>>>> >> >>> number of caveats we will be incrementally addressing in the 
>>>>>>>>> >> >>> run-up to a full release:
>>>>>>>>> >>
>>>>>>>>> >> >>>
>>>>>>>>> >>
>>>>>>>>> >> >>> [1] Accord is likely to be SLOW until further optimisations 
>>>>>>>>> >> >>> are implemented
>>>>>>>>> >>
>>>>>>>>> >> >>> [2] Schema changes have a number of hard edges
>>>>>>>>> >>
>>>>>>>>> >> >>> [3] Validation is ongoing, so there are likely still a number 
>>>>>>>>> >> >>> of bugs to shake out
>>>>>>>>> >>
>>>>>>>>> >> >>> [4] Many operator visibility/tooling/documentation 
>>>>>>>>> >> >>> improvements are pending
>>>>>>>>> >>
>>>>>>>>> >> >>>
>>>>>>>>> >>
>>>>>>>>> >> >>> To expand a little:
>>>>>>>>> >>
>>>>>>>>> >> >>>
>>>>>>>>> >>
>>>>>>>>> >> >>> [1] As of the last experiment we conducted, accord’s 
>>>>>>>>> >> >>> throughput was poor - also leading to higher LAN latencies. We 
>>>>>>>>> >> >>> have done no WAN experiments to date, but the protocol 
>>>>>>>>> >> >>> guarantees should already achieve better round-trip 
>>>>>>>>> >> >>> performance, in particular under contention. Improving 
>>>>>>>>> >> >>> throughput will be the main focus of attention once we are 
>>>>>>>>> >> >>> satisfied the protocol is otherwise stable, but our focus 
>>>>>>>>> >> >>> remains validation for the moment.
>>>>>>>>> >>
>>>>>>>>> >> >>> [2] Schema changes have not yet been well integrated with TCM. 
>>>>>>>>> >> >>> Dropping a table for instance will currently cause problems if 
>>>>>>>>> >> >>> nodes are offline.
>>>>>>>>> >>
>>>>>>>>> >> >>> [3] We have a range of validations we are already performing 
>>>>>>>>> >> >>> against cassandra-accord directly, and against its integration 
>>>>>>>>> >> >>> with Cassandra in cep-15-accord. We have run hundreds of 
>>>>>>>>> >> >>> billions of simulated transactions, and are still discovering 
>>>>>>>>> >> >>> some minor fault every few billion simulated transactions or 
>>>>>>>>> >> >>> so. There remains a lot more simulated validation to explore, 
>>>>>>>>> >> >>> as well as with real clusters serving real workloads.
>>>>>>>>> >>
>>>>>>>>> >> >>> [4] There are already a range of virtual tables for exploring 
>>>>>>>>> >> >>> internal state in Accord, and reasonably good metric support. 
>>>>>>>>> >> >>> However, tracing is not yet supported, and our metric and 
>>>>>>>>> >> >>> virtual table integrations need some further development.
>>>>>>>>> >>
>>>>>>>>> >> >>> [5] There are also other edge cases to address such as 
>>>>>>>>> >> >>> ensuring we do not reuse HLCs after restart, supporting 
>>>>>>>>> >> >>> ByteOrderPartitioner, and live migration from/to Paxos is 
>>>>>>>>> >> >>> undergoing fine-tuning and validation; probably there are some 
>>>>>>>>> >> >>> other things I am forgetting.
>>>>>>>>> >>
>>>>>>>>> >> >>>
>>>>>>>>> >>
>>>>>>>>> >> >>> Altogether the feature is fairly mature, despite these 
>>>>>>>>> >> >>> caveats. This is the fruit of the labour of a long list of 
>>>>>>>>> >> >>> contributors, including Aleksey Yeschenko, Alex Petrov, Ariel 
>>>>>>>>> >> >>> Weisberg, Blake Eggleston, Caleb Rackliffe and David Capwell, 
>>>>>>>>> >> >>> and represents a huge undertaking. It also wouldn’t have been 
>>>>>>>>> >> >>> possible without the work of Alex Petrov, Marcus Eriksson and 
>>>>>>>>> >> >>> Sam Tunnicliffe on delivering transactional cluster metadata. 
>>>>>>>>> >> >>> I hope you will join me in thanking them all for their 
>>>>>>>>> >> >>> contributions.
>>>>>>>>> >>
>>>>>>>>> >> >>>
>>>>>>>>> >>
>>>>>>>>> >> >>> Alex has also kindly produced some initial overview 
>>>>>>>>> >> >>> documentation for developers, that can be found here: 
>>>>>>>>> >> >>> https://github.com/apache/cassandra/blob/cep-15-accord/doc/modules/cassandra/pages/developing/accord/index.adoc.
>>>>>>>>> >> >>>  This will be expanded as time permits.
>>>>>>>>> >>
>>>>>>>>> >> >>>
>>>>>>>>> >>
>>>>>>>>> >> >>> Does anyone have any questions or concerns?
>>>>>>>>> >>
>>>>>>>>> >> >>>
>>>>>>>>> >>
>>>>>>>>> >> >>>
>>>>>>>>> >>
>>>>>>>>> >> >>
>>>>>>>>> >>
>>>>>>>>> >> >>
>>>>>>>>> >>
>>>>>>>>> >> >> --
>>>>>>>>> >>
>>>>>>>>> >> >> Dmitry Konstantinov
>>>>>>>>> >>
>>>>>>>>> >> >
>>>>>>>>> >>
>>>>>>>>> >> >
>>>>>>>>> >>
>>>>>>>>> >>
>>>>>>>>> 
>>>>>>>> 
>>> 

Reply via email to