2015/3/5に『SSD/NVMマニアックス』という秘密勉強会に参加してきました。
内容は公開不可という前提なのですが、それだけに色々面白かったので、差し支えないと思われる感想だけ書いておきたいと思います。(内容はチェックしていただき、OKをいただいています)
今回は人数的にもこじんまりとしていたので、最初に参加者全員が簡単な自己紹介を行いました。
自分は「よろしくお願いします」程度しか言わなかったんですが^^;(アドリブが苦手なので)、もう少しくらい言っておいた方がよかったと思ったので、ここで書いておきます。
自分はバッチアプリケーション(Asakusa Frameworkを使ったアプリケーション)のプログラミングを主に行っていて、ハードウェアは全然畑違いの素人です。
しかしハードウェアが変わればソフトウェアの作り方も変わってくる可能性があるので、SSDの最新動向と聞いて、参加させていただきました。
最初の発表は 東芝 田中さん。
今どんなことを考えながらどんな物を開発しているかという話でした。ので、自分がメモしてきたものを見返したら、公開しても問題なさそうな内容がありませんでした^^;
なので大雑把にだけ書いておくと、近い将来には現在のSSDよりもスピードが速くなり、容量もHDDより大きくなるそうです。
容量がHDDより大きくなると、色々影響ありそうですね。
自分の身近なところでは、HadoopはHDDが前提のアーキテクチャーなので、SSD主体になったらHadoopも変わるのか、新しいフレームワークが出てくるのか。
Sparkも中間データを必ずディスクに書くので、SSDになるのは良さそうかも。
次は さくらインターネット 須藤さん。
最初にSSDの原理や劣化する理由などを説明していただいて、とても勉強になりました。
- データの書き換えを行うと酸化膜が壊れていくので、そのうち使えなくなる。使われ方によって壊れ方が違うので、寿命も予測できない。
- 通電時に「パトロール機能」で誤り訂正を行う。
- ページ単位で書き込み、ページをまとめたブロック単位で消去する。(書き込みはマイクロ秒単位、消去はなんとミリ秒単位)
- ページ内の一部だけを書き換えることは出来ないので、そういう時は別ページにコピーする。
その結果、ユーザーが書き込んだ量よりも多く書き込みが発生し、寿命の減りが早くなるといった問題がある(Write Amplification)。
そういった諸問題をどういう戦略で軽減するかについては SSDを開発している各社によって異なっており、特徴がだいぶ違うのだそうです。
さくらインターネットではクラウドやVPSといった仮想マシンを提供するサービスを行っており、その物理マシンにはHDDやSSDを積んでいます。
なので、どのSSDを採用するかを決めるためにベンチマークを取っているそうで、どういう性能を見る意図でどういうベンチマークをとっているかという話がありました。(そして、ベンチマークを見ると会社毎の特徴がよく見えるとのことでした)
(SSDの最低限の性能とかピーク性能とか、意識したこと無かった^^;)
そのベンチマークの結果を分析する為にSSDの原理まで勉強しているとは、頭が下がります。
冒頭で書いた通り、ハードウェアが変わればソフトウェアの作り方も変わってくる可能性があります。
佐藤先生も似た事をおっしゃっていました。
アプリケーションを作る側からするとデバイスが抽象化(隠蔽)されている方が楽なのですが(今まではその方向で進んできた)、
パフォーマンスを出そうと思ったらアプリケーションもデバイスの違いを意識して作る方が良いでしょうから、今後どうなっていくのか…?
当面はハードウェア側が頑張ってくれそうな印象を受けましたが(笑)
面白い話を聞かせていただき、ありがとうございました。