All of lore.kernel.org
 help / color / mirror / Atom feed
From: Akira Hayakawa <ruby.wktk@gmail.com>
To: dm-devel@redhat.com
Subject: dm-writeboost: Progress Report
Date: Sat, 11 Jan 2014 16:27:25 +0900	[thread overview]
Message-ID: <52D0F25D.6030904@gmail.com> (raw)

Hi, DM Guys, 

This is the latest progress report of dm-writeboost.
I will send you the patch in the following post. Please merge it for 3.14.

To get broad interests to Writeboost I presented in two workshops in Japan.
Writeboost has now potential users waiting for it to merge in the main tree.
I heard some companies discuss about Writeboost in their R&D team.

Writeboost is now involving other third party developers now.

A Ph.D candidate in Seoul university has a great interest in the log-structured nature
and we discussed privately. He forked Writeboost and is working on his branch.
Writeboost has a potential to gain interest even from the academic researchers.

I also discussed with the developer of WalB (http://lkml.org/lkml/2013/6/3/115).
WalB also has the log-structured nature but the difference from Writeboost is that
it focuses on incremental backup. I don't know what will be the consequence of
our on-going discussion but there is a possibility that the functionality of WalB
will be merged into Writeboost. However, without this, Writeboost is worthy as a
pure caching module like dm-cache.

The code is improved much better.
Please merge my code for 3.14 after reviewing the patch.

The major code-level changes are described below

1. Improved the log replay algorithm to gain robustness
-------------------------------------------------------
The paper "Understanding the Robustness of SSDs under Power Fault (FAST13)"
made me re-think the log replay algorithm and I improved it.
Now, the algorithm is even robust for failure due to power fault
such as partial write of the log.
Each log now has the checksum of the log except the first 1 sector
and exploits it to check the validity of the log.
See struct segment_header_device changed.

2. Enabled flushing the logs execute in parallel
------------------------------------------------
Since we have multiple RAM buffers in Writeboost we can writes them to
the cache device in parallel to exploits the maximum parallelism in the
SSD.
Changing the log replay algorithm enabled this.
Now Writeboost uses workqueue instead of single kthread for the parallel
execution. The workqueue exhibits the sysfs to control the parallelism.
Thanks to Tejun (https://lkml.org/lkml/2013/3/1/629). Changing the
max_active parameter can change the number of executors.

3. Fully refactored (please read the code)
------------------------------------------
The code is much refactored and split into piece of small well-named
functions. I believe the code itself is production-ready. please check it.

4. Add some codes to Joe's device-mapper-test-suite
---------------------------------------------------
Joe maintains a testing framework in his Github repo.
I merged some test codes for Writeboost but I don't work on this project
recently. I will add more code later.

5. Add regression tests under testing/ of my Github tree
--------------------------------------------------------
Joe's test-suite is really well-designed but it has too many things before stand-by.
Instead, I prepare simple regression tests (written in shell) in Github repo.
https://github.com/akiradeveloper/dm-writeboost/tree/develop/testing
I want contributors to pass this tests before submitting their patch.

Thank you for reading,

Akira

             reply	other threads:[~2014-01-11  7:27 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-11  7:27 Akira Hayakawa [this message]
2014-01-13 10:09 ` dm-writeboost: Progress Report Joe Thornber
2014-01-13 11:46   ` Akira Hayakawa
2014-01-13 15:14     ` Mike Snitzer
2014-01-13 21:03     ` Paul B. Henson
2014-01-19  1:16       ` Akira Hayakawa
2014-01-14 10:17     ` Joe Thornber
  -- strict thread matches above, loose matches on Subject: below --
2014-05-17 14:44 Akira Hayakawa
2014-05-23 13:14 ` Akira Hayakawa
2013-11-04  5:17 Akira Hayakawa
2013-11-17 11:23 ` Akira Hayakawa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52D0F25D.6030904@gmail.com \
    --to=ruby.wktk@gmail.com \
    --cc=dm-devel@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.