Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

無限を考えるとめまいがする

原文: Infinity gives me vertigo

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2011/06/06 14:00

 最近、特にクラウドコンピューティングの文脈において、「無限のスケーラビリティ」という言葉をやたらに見かけるようになりました。私がこの言葉を問題にするのは、それが中身のない技術用語だからです。マーケティング担当者が「無限のスケーラビリティ」を主張するとき、その言わんとすることは何でしょうか。 (原文:Infinity gives me vertigo、2010/07/29投稿)

 本稿はデータベースソフトウェア「SQL Anywhere」およびデータベース全般に関する英語ドキュメントを翻訳する形で提供しています。図など、部分的に英語のままになっていますが、製品のSQL Anywhere自体は完全に日本語化されていますのでご安心ください。

 「Infinity always gives me vertigo」(無限を考えるといつもめまいがする)というフレーズは、有名なカナダ人のシンガーソングライター、Bruce Cockburnの2006年リリースのアルバム「Life Short Call Now」に収められている「Mystery」という曲に出てくるものです。これは頭に残るフレーズで、「スケーラビリティ」、特に「無限のスケーラビリティ」という用語について語るにはぴったりの"つかみ"です。

 最近、特にクラウドコンピューティングの文脈において、この「無限のスケーラビリティ」という言葉をやたらに見かけるようになりました。試しにGoogleで「無限のスケーラビリティ("infinite scalability")」を検索してみてください。私の言わんとすることがおわかりになるでしょう。最近見かけたのはここここ、そして遺憾なことに、ここでも使われています。

 私が「無限のスケーラビリティ」という言葉を問題にするのは、それが中身のない技術用語だからです。無限にスケールするものなどありません。「無限のスケーラビリティ」というのは、単なる宣伝用のうたい文句にすぎないのです。

 データベースシステムのパフォーマンス分析においては、多くの場合、システムのスループットと1つのパフォーマンス要因との比率を指してスケーラビリティという用語が使われます(パフォーマンス要因が複数の場合もあり得ますが、分析がますます難しくなります)。グラフにプロットする際の慣例としては、システムスループットをy軸に置き、変動するパフォーマンス要因をx軸に置きます。2つの値の比率が、y=Ax+Bを満たす直線(傾きがAで、切片がBの直線)で表せるとき、そのシステムは「線形的にスケールする」と言います。また、このグラフが漸近的に下から直線に接近する場合、つまりスループットの比率がパフォーマンス要因の増加に伴い減少する場合、そのシステムは「準線形的にスケールする」と言います。反対に、スループットがパフォーマンス要因の増加に対し、比例を上回る割合で増加するとき、そのシステムは「超線形的にスケールする」と言います。この最後の関係はめったにありません。なぜなら、物事はそう単純には運ばないからです。このことは、特にコンピュータシステムでは真実を突いています。かつて私の師であるGord Steindel氏がよく言っていましたが、「すべてのCPUは同じ速さで待機する」のです。

 以下のグラフは2つのスケーラビリティ曲線を表しています。青の線は線形スケーラビリティを示しています。パフォーマンス要因を表すX軸の値の増加に対して、線の傾きが一定に保たれています。それに対し、赤の線は対数的です。X軸の値が増加するにつれ、線の傾きが減少しています。

 グレーの楕円内の点に限定してパフォーマンス分析を行うと、2つの線分はどちらも(だいたい)線形を呈しています(つまり導関数がほぼ等しくなっています)。パフォーマンス分析の目的は、システムが青の線のような特徴を持つのか、それとも赤の線のような特徴を持つのかを判定することです。私が主張したいのは、このスループットの比率が、事実上すべてのコンピュータシステムで最終的には減少するということです。参考までに、グスタフソンの法則についてのこの記事をご覧ください。重要なのは、この減少がどの時点で起き始めるかを見極めることです。

 しかし現状はどうでしょう。残念ながら、マーケティング担当者は「無限のスケーラビリティ」というフレーズがお気に入りのようで、私がその使い方について異議を申し立てたところで、おそらく何も変わらないでしょう。概してマーケティング担当者が「無限のスケーラビリティ」を主張するとき、その言わんとすることは、「1つまたは複数のパフォーマンス要因が一定範囲内にある場合においての線形スケーラビリティ」ということです。

 宣伝文句を鵜のみにしないよう、くれぐれもご注意ください!



  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • Glenn Paulley(Glenn Paulley)

    カナダ オンタリオ州 ウォータールー R&DセンターにてSQL Anywhere 開発における Director of Engineering としてクエリ・オプティマイザなどの開発をリードしている。 ・IvanAnywhere

バックナンバー

連載:Glenn Paulley氏 データベース関連ブログ 翻訳記事

もっと読む

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5