Skip to content

akiradeveloper/dm-writeboost

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dm-writeboost

CI

Log-structured Caching for Linux

Overview

dm-writeboost is originated from Disk Caching Disk (DCD). DCD, implemented in Solaris, is an OS-level IO controller that builds logs from in-coming writes (data and metadata) and then writes the logs sequentially similar to log-structured filesystem. dm-writeboost implements the concept on Linux's device-mapper in more sophisticated way. As a further extension, dm-writeboost supports read-caching which also writes data sequentially.

Documents

Features

  • Durable: Any power failure can't break consistency because each log consists of data, metadata and the checksum of the log itself.
  • Lifetime: Other caching software (e.g. dm-cache) separates data and metadata and therefore submits writes to SSD too frequently. dm-writeboost, on the other hand, submits only one writes for hundreds of data and metadata updates so the SSD lives longer since SSD's lifetime depends on how many writes are submitted.
  • Fast: Since the sequential write is the best I/O pattern for every SSD and the code base is optimized for in-coming random writes, the write performance is the best among all caching drivers including dm-cache and bcache.
  • Portable: All kernel version 3.10 or later is supported with minimum compile-time macros.

Usage

  • Install: sudo make install to install and sudo make uninstall to uninstall. sudo make uninstall MODULE_VERSION=xxx can uninstall specific version that's installed. DKMS is required so please install it beforehand. (usually available in package system)
  • Make a device: Make a script to build a caching device. Please read doc/dm-writeboost-readme.txt for the dmsetup command detail. After reboot, you need to rebuild the caching device rather than reformatting as in the initial setup.

Distribution Packages

Related Projects

Related works

Award

Awarded by Japanese OSS Encouragement Award. Thanks!

License

Copyright (C) 2012-2024 Akira Hayakawa <ruby.wktk@gmail.com>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Developer Info

Akira Hayakawa (@akiradeveloper)
e-mail: ruby.wktk@gmail.com