Serverless computing has become increasingly popular for building scalable cloud applications, such as video analytics and machine learning. One key challenge is the mismatch between the stateless nature of serverless functions and the stateful applications built with them. Managing shared state using current options, e.g., cloud databases or object stores, struggles to achieve strong consistency and fault tolerance while maintaining high performance and scalability.
Distributed shared logs provide storage that can simultaneously achieve scalability, strong consistency, and fault tolerance. A distributed shared log offers a simple abstraction: a totally ordered log that can be accessed and appended concurrently. Boki is a functions-as-a-service (FaaS) runtime that provides a shared log API for serverless functions to store shared state.
Boki separates the read and write path, where writes are optimized with scale-out bandwidth and read locality is optimized with a cache on function nodes. It also provides flexible metadata tags to optimize selective reads. Boki provides high performance, read consistency and fault tolerance with a single log-based mechanism, the metalog.
We implement streaming computations on Boki featuring exactly once execution for each input record, even under server failures. Serverless functions provide elastic compute that can be scaled up or down. Keeping related records in a single, totally ordered Boki logbook provides significant speedups in part due to replacing a two-phase commit protocol with a one-phase protocol.
Emmett Witchel is Professor of Computer Science at the University of Texas at Austin, where he has been on the faculty since 2004, after receiving his PhD at MIT. His thesis won honorable mention for the ACM doctoral dissertation award. Witchel’s research interests include operating systems, security, architecture, and concurrency. His recent work has been on serverless computing, fault-tolerant logs, persistent memory, side-channel security for GPUs, and trusted execution environments. He co-chaired architectural support for programming languages and operating systems (ASPLOS) in 2019. His publishing recognition includes research highlights in Communications of the ACM (CACM), IEEE Micro top picks, and best paper awards at both the
symposium on operating systems principles (SOSP) and operating systems design and implementation (OSDI). He was on the founding team of Katana Graph (2019), a graph database company, and works as a principle engineer.