Rethinking Concurrency and Weak Isolation for Data Store Applications

Abstract:

Data stores are the foundation of today's service infrastructure. All data stores today expose some form of transaction atomicity and isolation semantics to applications, ranging from serializability in SQL-based database systems to causal consistency in distributed key-value stores. Weak isolation permits application behaviors that remind application developers of concurrency bugs in multi-threaded programs. In the first part of the talk, we show how developers identified, discussed and fixed 93 real-world isolation bugs in open-source applications. We find that while the root problems appear to be well understood, there is no systematic process to identify isolation bugs, and the solutions are ad-hoc, complicated and often not fully correct. In the second part of the talk, we introduce a dynamic predictive analysis technique called IsoPredict. Given an observed correct (serializable) execution of an application, IsoPredict generates and solves SMT constraints to find a buggy (unserializable) execution that is a feasible execution of the application. IsoPredict introduces novel techniques to handle divergent application behavior; solve mutually recursive sets of constraints; and balance coverage, precision, and performance. We conclude by presenting research opportunities to more deeply understand application semantics, and what it means for transaction isolation and concurrency control in database systems.

About the Speaker:

Spyros Blanas is an associate professor in the Department of Computer Science and Engineering at The Ohio State University. His research interest is database systems, particularly high-performance transaction and query processing. Spyros has received a IEEE TCDE Rising Star Award and Google Faculty Research Award for his contributions in high-performance database management systems. Spyros has a PhD from the University of Wisconsin-Madison, where part of his PhD dissertation work was commercialized in Microsoft SQL Server as the Hekaton in-memory transaction engine.