Doubleheader Logging: Eliminating Journal Write Overhead for Mobile DBMS

Abstract

Department of Computer Science and EngineeringVarious transactional systems use out-of-place updates such as logging or copy-on-write mechanisms to update data in a failure-atomic manner. Such out-of-place update methods double the I/O traffic due to back-up copies in the database layer and quadruple the I/Otraffic due to the file system journaling. In mobile systems, transaction sizes of mobile apps are known to be tiny and transactionsrun at low concurrency. For such mobile transactions, legacy out-of-place update methods such as WAL are sub-optimal. In this work,we propose a crash consistent in-place update logging method -doubleheader logging(DHL) for SQLite. DHL prevents previous consistent records from being lost by performing a copy-on-write inside the database page and co-locating the metadata-only journal information within the page. This is done, in turn, with minimal sacrifice to page utilization. DHL is similar to when journaling is disabled, in the sense that it incurs almost no additional overhead in terms of both I/O and computation. Our experimental results show thatDHL outperforms other logging methods such as out-of-place update write-ahead logging (WAL) and in-place update multi-version B-tree (MVBT).clos

    Similar works