S-Store: Streaming Meets Transaction Processing
Abstract
Stream processing addresses the needs of real-time applications. Transaction processing addresses the coordination and safety of short atomic computations. Heretofore, these two modes of operation existed in separate, stove-piped systems. In this work, we attempt to fuse the two computational paradigms in a single system called S-Store. In this way, S-Store can simultaneously accommodate OLTP and streaming applications. We present a simple transaction model for streams that integrates seamlessly with a traditional OLTP system. We chose to build S-Store as an extension of H-Store, an open-source, in-memory, distributed OLTP database system. By implementing S-Store in this way, we can make use of the transaction processing facilities that H-Store already supports, and we can concentrate on the additional implementation features that are needed to support streaming. Similar implementations could be done using other main-memory OLTP platforms. We show that we can actually achieve higher throughput for streaming workloads in S-Store than an equivalent deployment in H-Store alone. We also show how this can be achieved within H-Store with the addition of a modest amount of new functionality. Furthermore, we compare S-Store to two state-of-the-art streaming systems, Spark Streaming and Storm, and show how S-Store matches and sometimes exceeds their performance while providing stronger transactional guarantees.
Keywords
Cite
@article{arxiv.1503.01143,
title = {S-Store: Streaming Meets Transaction Processing},
author = {John Meehan and Nesime Tatbul and Stan Zdonik and Cansu Aslantas and Ugur Cetintemel and Jiang Du and Tim Kraska and Samuel Madden and David Maier and Andrew Pavlo and Michael Stonebraker and Kristin Tufte and Hao Wang},
journal= {arXiv preprint arXiv:1503.01143},
year = {2015}
}