Bringing Back-in-Time Debugging Down to the Database
This addresses a gap in debugging tools for database-level failures, specifically for developers working with SQL scripts or stored procedures, though it is incremental as it extends existing back-in-time debugging concepts to a new domain.
The paper tackles the problem of debugging failures caused by SQL scripts or stored procedures in databases by introducing a back-in-time debugger for the SAP HANA in-memory database, allowing developers to step queries backwards and inspect database states at arbitrary points in time with low overhead.
With back-in-time debuggers, developers can explore what happened before observable failures by following infection chains back to their root causes. While there are several such debuggers for object-oriented programming languages, we do not know of any back-in-time capabilities at the database-level. Thus, if failures are caused by SQL scripts or stored procedures, developers have difficulties in understanding their unexpected behavior. In this paper, we present an approach for bringing back-in-time debugging down to the SAP HANA in-memory database. Our TARDISP debugger allows developers to step queries backwards and inspecting the database at previous and arbitrary points in time. With the help of a SQL extension, we can express queries covering a period of execution time within a debugging session and handle large amounts of data with low overhead on performance and memory. The entire approach has been evaluated within a development project at SAP and shows promising results with respect to the gathered developer feedback.