自分用メモ:保守と分類

なんでも保守

http://d.hatena.ne.jp/yomoyomo/20081215/hatena
メンテナンスをしている、という表現は、IT業界の慣習では許容可能である。しかし、それが問題ではない、というわけではない。

IT業界では、しばしば開発コストのうち保守コストがその多くを占める。しかし、それは、質的に異なる様々な作業をひっくるめて保守と呼んでいる事から生じる症状に過ぎない。

はてなが「メンテナンスをしています。」と言ったところで、それは「いつも通り仕事しています」と意味的に殆ど変わらないのだから、そのような情報は表示するだけ意味が無い。

私は「保守」という単語はどうやら、われわれがかつて発明したレッテルのうちでももっとも劣るものであるらしいと気づきはじめた。(中略)そんなに(保守の)額が大きいのは一つのレッテルのもとに、あまりにも多くのものをぶち込んでいるだけのことではないのか。

http://www.amazon.co.jp/dp/4320025377/

必要なのは、ひとからげに保守と呼ばれている様々な作業を、その性質によって分類し、新たなレッテルを与えて扱いやすくすることである。

保守の分類

  • E.B. Swansonによる保守の分類
    • 是正保守(Corrective maintenance):発見された問題を修正するための保守(いわゆるデバッグ)
    • 適応保守(Adaptive maintenance):変化した、あるいは変化している環境においてソフトが使用可能できるようにする保守。

(ユーザが増えても動くようにスケーラブルにしたり、外部ソフトウェアが吐き出すデータフォーマットの変更に追随したり……)

    • 完全化保守(Perfective maintenance):性能や保守性を高める保守(パフォーマンスチューニング、リファクタリング等)
  • IEC14764ではもひとつ追加
    • 予防保守(Preventive maintenance):問題が発生する前にソフトウェア製品の潜在的欠陥を検知し修正する保守(ソフトがAPIの定義外の振舞いに依存していないかをチェックしたり)
  • JIS X0161では、さらに追加
    • 緊急保守(emergency maintenance):問題が発見されてから是正保守までに一時的になされる保守。(セキュリティ上の問題が発生したときに重要。ソフトの特定の機能を使えなくしたり、問題のとりあえずの回避策を発表したり。)

データベースの未来

http://d.hatena.ne.jp/kazuhooku/20081212/1229077256
を読んで。

Reiser4(中略)開発者のHans Reiserは、ファイルシステムを直接、発展的なメタデータを使ってデータベースとして使用できるとすら宣伝していた。

On File Systems
  • 次世代不揮発性メモリもいつかは登場する(MRAM,FeRAM,OUM...)

MRAM の特徴は、何といっても 「不揮発性」 と、読み書きの速度が速いことです。 既存のメモリでこれらをすべて満足するものはありません。

MRAM

そんな状況ではDBMSはどう変化していくのだろうか。

SSDの寿命は伸びる。

現在のSSDベンチマークソフトで延々と書き換えをしつづけて5年間持つ。

PCMark05の「HDD Test Suite」を連続して4日間、約2,000回を実行し、SSDに対して読み書きが継続する状態を保ったところ、弾き出された日付は「2013年10月11日」となったそうだ。

このような使い方で5年持つのなら、特に寿命は気にする必要がないかもしれない。

寿命診断ソフトが弾き出したSSDの寿命は? | スラド IT

そこから5倍伸ばそうという動きがある。

通常のSLCフラッシュ・メモリーに比べ,5倍多くデータ書き換えが可能な製品の開発を目指す。

SamsungとSun,SSD向け高耐久メモリーを共同開発 | 日経 xTECH(クロステック)

そのような状況で25年間も使えるのなら、大抵の用途には十分じゃないだろうか。

SSDのIOPSはまだはやくなる。HDDとは違って。

現在のHDDではIOPSは殆ど回転速度で決まってしまうが、その回転速度の上昇は物理的理由から停滞している。それと比べてSSDのIOPSは凄い速度で上昇している。それゆえに、SanDiskはvRPMというHDD回転速度(RPM)を基準とした指標を使ってSSDの成長をアピールしている。

一方、vRPMはSSDの性能を示す指標として提唱された。従来、製品リリースではデータのRead速度とWrite速度の理想値を表示するしかなく、せいぜい「SCLタイプはWrite処理が早く、MLCタイプはWrite処理が遅い」程度の違いしか示すことができなかった。SSDの購入を考えているユーザーが性能の参考にできるように提案されているのがvRPMだ。バーネットソン氏は、HDDの性能がシーク速度より主にプラッタの回転速度で決まることを説明した上で、SSDの性能指標としてもHDDの回転数に置き換えた「仮想的な回転数」を値として示すことでユーザーにSSDの性能を訴求すると説明する。

 SSDでも実際の利用状況に合わせたデータのReadとWriteの性能を数式で求めて値を示すことになるが、バーネットソン氏は、そのようにして求められたSSDのvRPMが2007年までの製品で1000vRPM程度であったのが2008年には1万vRPMに、そして2009年の製品では4万 vRPMと、急激に向上すると述べる。

SSDの性能は「LDE」「vRPM」で見極める - ITmedia PC USER

来年の製品はIOPSが4倍になると考えられている。

SSDの近未来

SSDの(論理的)ランダムライト

  • SSDは粒度の小さなランダムライトが苦手だとされてきたが、それはあくまで物理的ランダムライトな話なので、論理的にはいろいろ対処の方法はあようだ。

IntelSSDが、NCQの効果なのか*1ランダムライト速度をベンチマーク上で通常のSSDと比べて約80倍上昇させた。

読み込み速度は圧倒的で、書き込み速度に関してもHDDやSLC SSDにまったく見劣りしない

http://journal.mycom.co.jp/articles/2008/09/09/x25m/001.html

「ランダムライトの4k」ではHDDと比べて圧倒的に早い。

 ExtremeFFSでは、ページベースのアルゴリズムで動作し、データの物理位置と論理位置とを固定させる必要がない。また、1セクタ分のデータを書き込む際は、もっとも便利で効率的な場所に保存する。これにより、SSDのランダムライト性能を最大100倍にまで向上させ、同時に耐久性能も向上するという。

SanDisk、SSDのランダムライト性能を最大100倍向上させる技術
  • 別にSanDiskの製品を使わずとも、ソフトウェアだけで既にある製品のラダムライトの速度を上げることができる。

EasyCoという会社から、SSDのランダムライト速度を大幅に向上するというソフト"Managed Flash Technology(MFT)"が販売されています。MFTは正確にはソフトというよりドライバで、MFTで高速化したドライブは通常のドライブと全く同様に使用することができます。

(中略)

結論

以上のように、MFTの利用により、SSDのランダムライト性能とコピー性能を大幅に向上することができました。

http://d.hatena.ne.jp/Lansen/20081007/1223401336

SSDがやってくるのは明確だ。理論的には速度の面で磁気ストレージより圧倒的に早く、現実にも既に書き込み速度が競合的になりはじめているのを観察できるし、最新のIntelのランダムアクセスやIOPSは非常に印象的である。Btrfsが最初からSSD最適化を取りいれようとしている言は知っておくにこしたことはない。

On File Systems

ちなみにOn File Systemsを訳したのは自分です。

*1:NCQのデモ:http://www.intel.com/design/flash/nand/demo/demo.htm MicronやSanDiskの新製品もNCQ機能を搭載している。

ドワンゴ、クリプトン騒動

騒動の流れをちゃんと理解したわけでもなければ、追う気力もないので、
あくまで、双方のブログを読んだ印象から浮かんだイメージについて。


騒動の主体を、平行して動く三つのスレッド(Dwango,Frontier Works,Crypton)と、一つのリソース(権利者)に例えて考えてみる。

  1. 各スレッドが,明確に定義された(Well-defined)統一プロセスに従わなかったばっかりに(口頭か文書か、契約が先か仕事が先か等)、どこかでデッドロックが起きて契約の遅延が発生。(事務手続きが円滑に行われなかった http://blog.crypton.co.jp/mp/2007/12/2_2.html)
  2. 待ちステートだったはずのDwangoが「当初の合意から相当の時間が経過していることもあり(http://blog.nicovideo.jp/niconews/2007/12/000744.html)」タイムアウトだと判断して強制実行。
  3. バグってプロセスごと落ちちゃいました。

という流れに見えたけど、どうだろう?

万能棒グラフ

「ある量の2時点での変化」を、なんらかの理由(例えば、折れ線グラフよりも棒グラフの方が好き*1 )で棒グラフで表示したいときってありますよね?

しかし、意外と面倒なのが棒グラフの作図。表計算アプリケーションのようなグラフ作成機能のあるソフトの使い方を知っていれば別ですが、そうでなければ自力で描くしかありません。

万能棒グラフ

そんな貴方にお勧めなのが、この万能棒グラフ。

Creative Commons License

万能棒グラフ by taninsw is licensed under a Creative Commons Attribution-ShareAlike 2.1 Japan License.


このグラフさえあれば、貴方は新たにグラフを作る必要はありません。どんな「ある量の2時点での変化」であろうと、このグラフで表現できます。「そんな馬鹿なことを!」と貴方はお考えかもしれません。

まずは次の例を見てください。

11歳の子供の運動能力の変化

この図は、ブログ『日本図表審査機構 [JGRO]』の記事(http://grp.cocolog-nifty.com/jgro/2007/10/aa_2.html)に引用されていたグラフを元に、「11歳の子供の運動能力の変化」をグラフにしたものです。これをみれば全てのグラフが同じ図で表現できることが納得頂けるものと思います。

使い方

この万能棒グラフの使い方はシンプルです。

  1. 万能棒グラフをコピーアンドペーストする。
  2. 2時点の、それぞれの値を元に、目盛りの値を書く。
  3. 2つの目盛りから、基線に相応しい値を計算して書き込む。

要するに目盛りを書き加えるだけでいいのです。

条件

しかし、この万能棒グラフを使うには、いくつかの条件があります。

  • 目盛りの値は上下逆転しても良い

これは元のグラフも上下逆転していたので問題は無いと推測します。(理由は判りません)

  • 基線の値はゼロでなくて良い

これも元のグラフがそうなっていたため、問題は無いのだと推測します。(理由は判りません)

蛇足

「ある量の2時点での変化」を表現するための棒グラフがこの2条件を満たしているとき、棒グラフの棒は任意の形を取れる(逆にいえば、その棒グラフの棒は、何の情報も表現していない)場合があるような無いような気がしますが、きっと気のせいでしょう。

免責

利用者が冗談だと分からずに、このグラフを利用した事で損害を被ったとしても当方は全く責任を負いませんので、予めご了承の上ご判断ください。冗談だと分かった上で利用した場合にも、やはり全く責任を負いませんのでご理解の程よろしくお願い申し上げます。

*1:棒グラフと折れ線グラフ どちらに、より好感を持ちますか?http://q.hatena.ne.jp/1176809235