Data-Centric Execution Inspection
This event is free and open to the publicAdd to Google Calendar
Virtual Passcode: 891013
Abstract: Software projects are riddled with bugs that degrade the reliability of our systems. Moreover, as society increasingly turns to software to solve critical problems, software bugs increasingly lead to catastrophe, including power failures, massive financial loss (~1.56 trillion dollars in 2020), and even loss of life. As a result, the average developer spends most of their time removing bugs from their software.
Traditionally, developers debug by performing execution inspection, in which they use tools to inspect the behavior of an execution of their program. We can model the interaction supported by nearly all tools today as a programming task; developers essentially construct new debugging programs to diagnose the errors in their original programs. This lens illuminates two limitations of current tools (1) they are computationally expensive and (2) they expose needlessly complex interfaces.
In this talk, I will describe a new data-centric framework that alleviates the performance and specification limitations of current execution inspection tools. The central idea is to treat an execution of a program as a first class data-object and to conceptually express execution inspection questions as queries over these data-objects. I will discuss how this framework enables massive-scale parallelism to accelerate inspection tasks (SledgeHammer), even those, such as information flow, that are “embarrassingly sequential” (JetStream). Then, I will describe how a data-oriented mindset enables the use of relational query models to not only simplify inspection tasks (OmniTable), but also seamlessly adopt performance optimizations (SteamDrill).