Centiman: Elastic, high performance optimistic concurrency control by watermarking - Ding, Bailu; Kot, Lucja; Demers, Alan; Gehrke, Johannes (Proceedings of the Sixth ACM Symposium on Cloud Computing, 2015)
We present Centiman, a system for high performance, elas- tic transaction processing in the cloud. Centiman provides serializability on top of a key-value store with a lightweight protocol based on optimistic concurrency control (OCC). Centiman is designed for the cloud setting, with an archi- tecture that is loosely coupled and avoids synchronization wherever possible. Centiman supports sharded transaction validation; validators can be added or removed on-the-fly in an elastic manner. Processors and validators scale indepen- dently of each other and recover from failure transparently to each other. Centiman’s loosely coupled design creates some challenges: it can cause spurious aborts and it makes it dif- ficult to implement common performance optimizations for read-only transactions. To deal with these issues, Centiman uses a watermark abstraction to asynchronously propagate information about transaction commits through the system. In an extensive evaluation we show that Centiman pro- vides fast elastic scaling, low-overhead serializability for read-heavy workloads, and scales to millions of operations per second.