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.

Reply via email to