watermint.org

Takayuki Okazaki's blog

cero_tさんのエントリ「[Tech]ストレージはSSDではなくRAMディスクにシフトしていくと思う」で、ちょっと違うかなと思ったのでコメント。
SSDがRAMディスクにシフトするという可能性は、MRAMとかFeRAMのような不揮発性RAMが主流になることを前提としてならアリかもしれませんが、その前提をおかないなら経済的な理由でナシだと思います。
_DSC5670
DRAMはめちゃんこ電気を使います。いまやテラレベルのRAMを積めるハイエンドサーバの電気消費量の1/5〜1/3ぐらいがDRAMによる消費だとどっかでみたことがあります。特に、CPUが高周波数を目指さなくなってきたので相対的にRAMの消費電力がこれから目立つようになるはずです。最近のDRAM(FB-DIMMとか)は巨大なヒートシンクも付いてて冷却側でもエネルギーを使いそうですからね。
_DSC5677
RDBMSの処理速度はトランザクションログのシーケンシャルな書き込みさえ高速化してやれば、データ本体は共有キャッシュによってすでにOracle/DB2らによってかなり高速化されています。最近クラウドとか言われているシステムだと、そのトランザクションログもRAM上で処理してしまうのでスループットは劇的にあがりました。最後のネックが外れたわけですね(そのかわり大事なトランザクションログが揮発的なところに載るというドキドキ感を伴いますが)。これも高速化だけの観点をもって論じれば、RDBMSはRAM上へ、と言えるでしょうけど前述の通り電気代まで考慮して成り立つかどうかはその使う人の財布の状況次第。
_DSC5678
SSDは書き込みは一般に(HDDより)遅くて、読み込みは速い不揮発性メモリですから、WORM(Write Once, Read Many)となるようなトランザクションには向いていて、たとえば時間をかけて作って良いマスターデータのインデックスなんかには最適なストレージと言われています。でも、SSDの技術的な進歩は最近めまぐるしく、HDDよりもIOPS(毎秒あたりのI/O回数)が遙かに高いものが出たり、書き込み速度もファームウエアによる分散書き込みによってかなり高速化しているようです。
この流れからみると、HDDがSSDによってかなり置き換えられるのは間違いないでしょうね。こないだSunの出したStorage 7000シリーズのHybrid Storage Poolなんかは、そのへんのDRAM・SSD・HDDのバランスをハードウエア側でうまく吸収するので、完全移行するまでの段階、あるいは特定の用途ではこのようなハイブリッド型が生き残りそうです。
_DSC5699
ネタもときしださんのRDBMSの時代の終わりが見えてきた」で触れられている、ようにプログラミングのやり方が、変わりそうだ。というところには我々技術者は注目を払っておいた方がよいでしょう。SQLベースのRDBMSが完全になくなる、ということは無いでしょうけれど、かなり多くの利用シーンでGoogle(BigTables)、Amazon(SimpleDB)、Oracle(Oracle Coherence)、Microsoft(SQL Data Services)、楽天(Roma)のようなハッシュコードでアクセスするデータベースが使われていくと思います。大事なのはクラウドではなくて、環境的な変化に伴ったプログラミングパラダイムの変化。
別に大規模クラウドがなくても、CPUはマルチコア化・マルチスレッド化するから小規模なPCサイズのシステムでもクラウドみたいなアーキテクチャがそのうち作れるようになるかもしれない。そうなると、今まで高価だと思っていた処理が高価ではなくなるし、むしろ既存のやり方を守り通した方が高価になってしまう。クラウドみたいなバズワードだけ追ってると(あるいはバズワードの批判だけをしていると)こういうバランス感覚が磨けない。
高価であっても既存のやり方を踏襲するのは、そこに別の価値観(たとえば信頼性)があるわけで、COBOLは死んだとか、SQLはあと10年の寿命という固定観念を持つのは危険だと思う。もちろん自分の業種・業態と比較して、ビジネス上成立しない、っていう話ならどんどんやった方がいい。
_DSC5722
きしださんは組み込み向けRDBMSが真っ先になくなると書いているけど、パフォーマンスの観点だけから論じるのは理論武装が足りてないと思います。組み込みだと、パフォーマンスだけじゃなくて消費電力とかプログラムサイズも大事だから、エンタープライズ用途と比べればバランスの取り方が大きく違う。組み込みには詳しくないから今後どうなるのか僕には見当が付きませんが・・・。
_DSC5764
環境の変化に伴って「RDBMS?ナニソレ?」という世代の技術者はきっと出てくると思います。こうなるかどうかを決める大きな要素は価格だと思っています。RDBMSのほうが、ハッシュDBより高ければ、ハッシュDBを使うだろうし。これは、べつにシステムの規模とか利用企業の規模とかにあんまり関係なくシフトしていくと思っています。最初は小規模な予算の少ないプロジェクトが飛びつくでしょうけれど、金融危機などで大規模な構造改革をしなければならない状況におかれた大企業・大組織も、今まで持っていた価値観よりも価格を重視するようになると思うからです。特に目に付きやすい人件費までもがクラウドによって覆い隠されるならば、経営者にとってクラウドの方が都合が良くなるかもしれませんね。
_DSC5778
クラウドコンピューティングは、手元にパソコン置いておくより、クラウド上においた方が安いならそれを使うでしょう。気にしておくべき点は、クラウドの利用料にはコンピュータとソフトウエアの価格と、土地代や、人件費、冷却、電気代等も含まれていることです。今まで別々に購入していたものが、専業の業者によって一括して提供されるようになります。業者からすれば、一括して調達した方が安く調達しやすいでしょうし、提供される価格もそれに反映されるでしょう。特に土地代が高くついてしまう日本のIT産業と電力会社にはこれからすこしずつ逆風が吹くかもしれません。
_DSC5758
クラウドコンピューティングについて考えたときに、日本特有の問題として、セキュリティとか個人情報保護についての消費者からの抵抗感の程度が、サービスを提供するブランドにとって大事なんじゃないかと思います。現状、様々な報道から知る限り「自分の個人情報がどこにあるかさえ分からない」という状況に嫌悪感を感じる消費者はとても多いはずです。この嫌悪感に対しては、常に真摯に、丁寧に対応するしかないのでしょうけれど、多くの消費者から嫌悪感がなくなるためには、経済・社会全体として正常に動いている空気感が必要そうで、なかなか技術だけで解決される見通しはなさそうですね。だいぶタイトルと論点もずれてきたのでこの辺で。