Hi Benedict! I haven't gone too deeply into this proposal but it's very exciting to see this kind of innovation!
Some basic questions which are tangentially related with this effort I didn't see covered in the CEP. 1. Will this effort eventually replace consistency levels in C*? I ask because one of the shortcomings of our paxos today is it can be easily mixed with non serialized consistencies and therefore users commonly break consistency by for example reading at CL.ONE while also using LWTs. 2. What structural changes are planned to support an external dependency project like this? Are there some high level interfaces you expect the project to adhere to? Thanks Jake On Sun, Sep 5, 2021 at 10:33 AM bened...@apache.org <bened...@apache.org> wrote: > Wiki: > https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-15%3A+General+Purpose+Transactions > Whitepaper: > https://cwiki.apache.org/confluence/download/attachments/188744725/Accord.pdf > < > https://cwiki.apache.org/confluence/download/attachments/188744725/Accord.pdf?version=1&modificationDate=1630847736966&api=v2 > > > Prototype: https://github.com/belliottsmith/accord > > Hi everyone, I’d like to propose this CEP for adoption by the community. > > Cassandra has benefitted from LWTs for many years, but application > developers that want to ensure consistency for complex operations must > either accept the scalability bottleneck of serializing all related state > through a single partition, or layer a complex state machine on top of the > database. These are sophisticated and costly activities that our users > should not be expected to undertake. Since distributed databases are > beginning to offer distributed transactions with fewer caveats, it is past > time for Cassandra to do so as well. > > This CEP proposes the use of several novel techniques that build upon > research (that followed EPaxos) to deliver (non-interactive) general > purpose distributed transactions. The approach is outlined in the wikipage > and in more detail in the linked whitepaper. Importantly, by adopting this > approach we will be the _only_ distributed database to offer global, > scalable, strict serializable transactions in one wide area round-trip. > This would represent a significant improvement in the state of the art, > both in the academic literature and in commercial or open source offerings. > > This work has been partially realised in a prototype. This partial > prototype has been verified against Jepsen.io’s Maelstrom library and > dedicated in-tree strict serializability verification tools, but much work > remains for the work to be production capable and integrated into Cassandra. > > I propose including the prototype in the project as a new source > repository, to be developed as a standalone library for integration into > Cassandra. I hope the community sees the important value proposition of > this proposal, and will adopt the CEP after this discussion, so that the > library and its integration into Cassandra can be developed in parallel and > with the involvement of the wider community. > -- http://twitter.com/tjake