|
事業仕分けによる次世代スーパーコンピューターの開発予算削減について、どうお考えですか?
|
嘘をつくコンピュータ――22月26日夕方(日本時間)、
「嘘をつくコンピュータ」の28日掲載に向けての編集作業が行われていたころ、
Linux のカーネル(OS の心臓部分)について議論するニュースグループに、
ある投稿がありました。
「Proposal for "proper" durable fsync() and fdatasync()」と題されたもので、
「信頼できる同期処理に関する提案」をしているものです。
これを投稿したのは、 新しいデータベースを設計中だという Jamie 氏ですが、 面白いのは、 「この問題は OS(Linux)の重要なバグだと考えられる」という意見が大勢だということです。 それでは、嘘をついているのは OS なのでしょうか? 実は、これが明確でなかったために、 「既存のデータベースメーカーはこの問題を隠蔽しているようだ」(Jamie氏)という事態になっているのです。 この問題の原因は、ハードディスクにある書き込みキャッシュという機能です。 これは、書き込みの指示を、ハードディスク内にあるキャッシュに素早く保存して、 書き込みが終わったことにして、 その後最適なタイミングで物理的にディスクに書き込むというものです。 書き込みキャッシュなしに比べると数倍以上の高速性能を発揮できるので、 今日ではほとんどのハードディスクで書き込みキャッシュは有効になっています。 そして、OS はその恩恵を受けるために、 通常ハードディスクのデフォルト設定を優先、つまり有効にしています。 恐らく数年前までは、 突然の電源断時にデータを失いたくなかったら、 ユーザーが適切な対応をしなければならない、 という意見が大勢だったと思われます。 例えば、突然の電源断時に、 書き込みキャッシュの内容を書き込めるようなバックアップを持つ(UPS またはバッテリー搭載コントローラなど)ことです。 しかし確実にこの仕組みがうまく動くようにするには、 実は大変な検証作業が必要ですし、 今日増えてきている携帯端末(*1)では不可能です。 そうなると、壊れることを前提に頻繁にバックアップを取るか、 大幅な性能劣化を覚悟して、 書き込みキャッシュを無効にしなければならないことになってしまいます。 このように、これまでは1(on)か0(off)かという議論しかなかったために、 それならユーザーに委ねよう、 という結論になっていたのだと思われます。 しかし実は、 0.8というソリューションがあるのです。 データベースやファイルシステムなどだけが、 最低限必要な時にハードディスクにシグナルを出して、 確実にディスクに書き込ませるというものです。 実際組み込み機器のメーカーでは、このような独自実装を追加しています。 全体を部品に分け、各部品の中で切磋琢磨することで、 全体が改善されていくという発想は、 コンピュータのハード・ソフト両方の成長を支えてきたものです。 これは大変成功しているすばらしいものですが、 個々の部品がその中にしか目を向けないと、 全体として致命的な問題を抱えることもある、 といういい例だと思います。 そういう意味で、 Linux のカーネルグループがこの問題を自分たちの問題だと考えたのは、 大変勇気のある、すばらしい発言ではないでしょうか。 *1:携帯端末では、 ハードディスクとは異なるフラッシュメモリなどの記憶装置を搭載していることが多いので、 この場合、書き込みキャッシュの問題は異なることがあります。
記事提供:db4objects
最新トップニュース
|
japan.internet.com 10周年記念
インターネットコムマーケティングセミナー ROI を最適化するパフォーマンスマーケティングの最前線 【12/16(水)13時〜 東京・赤坂】 申込はコチラ>>
|