High-performance transactional storage
MetadataShow full item record
Developers face a fundamental tension between performance and ease of programming when building complex applications. On the one hand, by freeing developers from having to worry about concurrency and failures, ACID transactions can greatly simplify the task of building applications. These benefits, however, have a cost: in a distributed setting, ACID transactions can limit performance and make systems hard to scale in the presence of contention. On the other hand, the BASE approach can achieve higher performance by providing weakened semantics. Embracing the BASE paradigm, however, exacts its own heavy price: once one renounces consistency guarantees, it is up to developers to explicitly code in their applications the logic necessary to en- sure consistency in the presence of concurrency and faults, making this task complex and error-prone. This dissertation aims to resolve this tension by building database systems that provide both the ease of programming of the ACID approach and the performance that the BASE approach can provide. Our approach depends on the observation that different transactions affect overall performance of applications in different ways. Traditional ACID databases ignore this diversity: they provide a single implementation of the same uniform abstraction across all transactions. This dissertation explores two different ways to leverage the previews key observation to combine performance and ease of programming, and presents two systems, Salt and Callas, inspired by them.