Hey guys,
I've recently made some progress in the field of consistency(C in ACID). Among other things, I've developed a serializability implementation for MySQL Cluster(NDB Cluster) to test my ideas and you are invited to peer-review it for me. I believe it is the fifth one in commercial database systems after: MySQL InnoDB's 2PL, PostgreSQL's Serializable Snapshot Isolation, Google's Spanner's isolation level(I gave a proof in Appendix D of my article, the google guys
may not have known this), CockroachDB's timestamp-based serializability implementation. The aim is to solve consistent, large(usually implies
a distributed architecture) and performance-boosted OLTP application problems, which could be daunting for those who care about consistency and
serializability. This solution to the serializability problem is a 2nd-tier one, which means it doesn't require any coding. So as long as you can
manage a MySQL Cluster, you can readily deploy and test your application with it.
This on-going project is hosted @
https://github.com/creamyfish/conflict_serializability
I also set up a discussion site @
https://www.reddit.com/r/Serializability/, besides that of github's
Current evaluation(mainly in Example 16 and Theorem 4‘ in my article) indicates it should be able to provide both consistency and performance to a fairly complex(comparing with TPCC, the warehouse like benchmark) OLTP application if it is deployed in a MySQL Cluster. However I believe testing it in other applications is necessary to come to the conclusion that whether it is able to provide both consistency and performance to many, if not most OLTP applications. So you are also invited to test your application with it to help me assess it. I will try to provide service for that.
Come check it out if you are interested in consistency and serializability. Your help is highly appreciated!