Salt: Combining ACID and BASE in a Distributed Database
Proceedings of the USENIX Operating Systems Design and Implementation (OSDI) 2014.
View
PDF or BibTeX.
areas
Distributed Systems
abstract
This paper presents Salt, a distributed
database that allows developers to improve the performance and
scalability of their ACID applications through the incremental
adoption of the BASE approach. Salt's motivation is rooted in the Pareto principle: for many applications, the transactions that
actually test the performance limits of ACID are few. To leverage this
insight, Salt introduces BASE transactions, a new
abstraction that encapsulates the workflow of performance-critical
transactions. BASE transactions retain desirable properties like
atomicity and durability, but, through the new mechanism of Salt
Isolation, control which granularity of isolation they offer to other
transactions, depending on whether they are BASE or ACID. This
flexibility allows BASE transactions to reap the performance benefits
of the BASE paradigm without compromising the guarantees enjoyed by
the remaining ACID transactions. For example, in our MySQL
Cluster-based implementation of Salt, BASE-ifying just one out of 11
transactions in the open source ticketing application Fusion Ticket
yields a 6.5x increase over the throughput obtained with an ACID
implementation.