Stackable Transactional File System Using Kernel-Level WAL

Daejun Park, Dongkun Shin

Research output: Contribution to journalArticlepeer-review

1 Scopus citations

Abstract

User applications that require transactional file access generally use user-level transactional protocols such as logging, atomic rename, since the POSIX interface does not support transactional file operations. The user-level protocols are complex and require specific persistence properties of file systems for correctness. If the kernel provides transactional access to file data, application developers can avoid the complex and error-prone application-level protocols. Many previous studies on kernel-level transactional support have several critical limitations such as complex APIs, file system-dependence, and low transaction concurrency. In this paper, we propose a kernel-level write-ahead logging (WAL) technique, called KWAL. KWAL maintains user-transparent WAL files and redirects transactional IOs to them. Since KWAL is implemented as a stackable file system, it can be mounted over any native file systems, without modifying them. To provide a higher transaction concurrency while guaranteeing isolation, KWAL supports byte-level write conflict detection and repeatable read isolation. We also utilize a block remap technique to resolve the duplicate write problem of WAL-based transaction scheme. To demonstrate the usefulness of KWAL, we implemented a simple key-value store using KWAL APIs, fixed the wrong transaction implementation of the Git application, and simplified the implementation of the storage engines of MySQL and SQLite.

Original languageEnglish
Pages (from-to)110088-110099
Number of pages12
JournalIEEE Access
Volume10
DOIs
StatePublished - 2022
Externally publishedYes

Keywords

  • concurrency
  • stackable file system
  • Transactional file system
  • write-ahead log

Fingerprint

Dive into the research topics of 'Stackable Transactional File System Using Kernel-Level WAL'. Together they form a unique fingerprint.

Cite this