テストステ論

高テス協会会長が, テストステロンに関する情報をお届けします.

(writeboost report) REQ_FLUSH対応への言いがかりへの対応

デイヴから, writeboostについて2点言いがかりがついた. デイヴはXFSの開発に関わっていて, 発表なども行っている人物である. そういう人物がこのレベルの知識しかないということに, がっかりした.

  1. bioのセマンティクスをviolateしている.
  2. sync writeが連発した時, ベストケースの性能がカス

前者は, 古いbioのセマンティクスに基づく指摘であり, 今となっては誤っている. 後者については, 言いがかりというほどでもないが, 誤解をしていることは間違いない.

REQ_FLUSHについては, 以下で私なりの考察を行っている. 反論する気が起きないので無視するかも知れない(だって, 一つ前のメールでマイクが, dm-cacheやdm-thinも同じような遅延テクニックを使っていると言ってるじゃないか・・・)が, ネタを調査しておくことには価値がある. 以下のブログ記事に, いくつか根拠を追加していく可能性がある.

http://www.redhat.com/archives/dm-devel/2013-September/msg00130.html

これはdm-cacheのもの. cache_map以下

        if (bio->bi_rw & (REQ_FLUSH | REQ_FUA | REQ_DISCARD)) {
                defer_bio(cache, bio);
                return DM_MAPIO_SUBMITTED;
        }

これはdm-thinのもの. thin_bio_map以下

        if (bio->bi_rw & (REQ_DISCARD | REQ_FLUSH | REQ_FUA)) {
                thin_defer_bio(tc, bio);
                return DM_MAPIO_SUBMITTED;
        }

セマンティクスをviolateしていないことは明らかである. 古いbioでは, この実装は適切ではないが, 制約がきつすぎるとのことから, フラッシュについて制約が緩和された.

デイヴのコメントは断定的で, 自分が誤っているという可能性を一分も考えていない. また, 文の構成が悪く, 雑記のレベルである. 私は, コミュニティは極めて技術的な場だと考えている. 私は企業で技術者をしているが, そこでの会話やメールやりとりより, 遥かに技術的であり, また, 理知的である. 従って, そこで議論をしたいのであれば, 技術的な議論の仕方を全うすべきである. それが出来ない人は, 相手にすることが怖い. 正しく反論しても, 感情的になるだけに思うからだ. 事実を事実として客観的に見つめられる人としか, 仕事は出来ない. くだらない権力バランスで真実がねじ曲げられるのはたまらない. 指摘が誤っていればふつうは回答するものだが, このケースは例外. 嫌気がさす.

(追記)
http://www.redhat.com/archives/dm-devel/2013-October/msg00000.html
ジョーから援護射撃が入った. これを待っていた. おそらくジョーは, バリアの遅延処理に関するアイデアをdm-thinやdm-cacheにもたらした張本人なのだろう. 彼の指摘は正しい. 理解も正しい. dm-thinとdm-writeboostは, バリアの遅延による恩恵が同じなのだろう. だから理解しやすいのだ. 現実的に考えて, writeboostがこの方式以外をとれるとは思わない. thinにおいてはまた話は別だろうと思うのだが, どうやら運良く理解を助けたようである.