Article quick-view

Parallel Database Recovery for Multicore Main-Memory Databases

ABSTRACT

Main-memory database systems for multicore servers can achieve excellent performance when processing massive volume of OLTP workloads. But crash-resilience mechanism, or namely logging-and-replay, can either degrade the performance of transaction processing or slow down the process of failure recovery. In this paper, we show that, by exploiting application semantics, it is possible to achieve speedy failure recovery without introducing any costly logging overhead to the execution of online transactions. We propose TARS, a parallel log-recovery mechanism that is specifically designed for lightweight, coarse-grained command-logging approach. TARS leverages a combination of static and dynamic analyses to parallelize the log replay: at compile time, TARS decomposes stored procedures by carefully analyzing dependencies within and across programs; at recovery time, a re-execution schedule with a high degree of parallelism is attained through lightweight one-pass scans over transaction parameter values. As such, recovery latency is remarkably minimized. We evaluated TARS in a main-memory database prototype running on a 40-core server. Compared to the state-of-the-art mechanisms, TARS yields significantly higher recovery rate without compromising the efficiency of transaction processing.