XMLデータベース開発方法論(2) Page 1/4
スケーラビリティの重大な誤解、
“大は小を兼ねない”
川俣 晶
株式会社ピーデー
2005/7/22
本連載は、XMLデータベースの開発方法論を展開する内容である。全6回の連載の前半3回では、なぜXMLデータベースを採用すべきなのかという根元的な認識を読者と共有し、後半3回においてXMLデータベース構築に特化した開発方法論を展開する。(編集局)
光子郎 「世界中からのメールのせいです。大量のメールがこちらの処理速度を下げてるんです」 タケル 「これじゃ、やられっぱなしだよ!」 光子郎 「世界中のみんな、ウォーグレイモンたちのレスポンスが下がっちゃう!! メールを送らないで、頼むから!!!」 映画『デジモンアドベンチャー ぼくらのウォーゲーム!』(2000年、細田守監督作品)より |
主な内容 --Page 1--
前回のおさらいと今回のテーマ自らの最終学歴を語る三重苦 化学工学の華はスケールメリット 層流と乱流、規模(スケール)が変わると性質が変わる例 --Page 2--
情報の規模が変わると性質は変わるか?--Page 3--
情報は人間の思いどおりにならない規模から見たRDBとAWKの違い --Page 4--
CPUパワーの拡大と中間領域の拡大次回予告 |
前回は「序章、データ処理技法の地政学」と題して、データ処理技法にはさまざまな種類があり、それぞれに性質が違うことを示した。例えば、RDBを定型、AWKを不定型の代表選手として取り上げ、その中間にXMLやXMLデータベースが位置付けられることを示した(図1)。
そして、データ処理技法とは、唯一絶対の正解があるわけではなく、さまざまなニーズごとに、それに最も近い位置にある技術が最適であるという考え方を披露した(図2)。
図1 定型・非定型直線 (注:雰囲気を把握するために単純化した説明図であって、内容は厳密に正確ではない) |
図2 最適な技術はニーズに最も近い (注:雰囲気を把握するために単純化した説明図であって、内容は厳密に正確ではない) |
そして、筆者の個人的な体験談も語ることとなった。筆者は、さまざまなデータ処理技法の間をさすらってきた。パソコンにおける定型データ処理の帝王ともいえるRDBでは例外的処理の多いデータとの相性が悪く、AWKによる不定型なデータ処理はデータのバリエーションが増えると正規表現が複雑になりすぎ、定型性と不定型性を兼ね備えたXMLはテキストデータであるために、規模の拡大に弱かった。そして最後の希望であるかのようにたどり着いたのが、XMLデータベースというわけである。これはXMLと同様に定型性と不定型性を兼ね備え、しかも処理性能も高いという特徴を持つ。
さて、今回は、前回とは異なる話題を取り上げる。それは、「規模が違えば性質も変わる」という、一種の常識である。これを語ることは、私がXMLデータベースについて語る際に不可欠な前提となるのだが、残念ながらIT業界にあっては常識とはなっていないようなので、特に詳しく説明を行う。このような常識の欠如は、情報の世界にしばしば見られる不毛な「宗教戦争」の理由になり得るだけでなく、明らかに実現不可能なアイデアを実行可能であるかのように誤解させられ、説得されてしまうリスクも持つのではないかと考えている。つまり、知っているとXMLデータベース以外の分野でも役に立つ(かもしれない)お買い得の知識である。
実は、筆者はあまり最終学歴を語りたくない。それを語る場合に訪れる誤解の三重苦があるためだ。まず筆者が卒業した東京農工大学は、農学部と工学部を持つれっきとした国立大学なのだが、知名度が極めて低く、大抵の場合、東京農業大学だと誤解される。その結果として「農工大の工学部を出ました」とわざわざ工学部といっているのに、「え、農学部なんですか?」というリアクションをもらうことが非常に多い。次に、3月ではなく6月に卒業したという事実が、高い確率で解きがたい誤解を招く。6月卒業とは、3月の時点で単位がわずかに足りなかった学生が3カ月遅れで卒業するための制度であって、それが適用される学生が極めて少ないことを除けば何ら特殊なことではない。しかし、多くの者たちは6月卒業という制度そのものを知らないために、6月に卒業するのは特殊な大学であると思い込み、例えば「アメリカ式に運営している大学なのですね!?」というような突拍子もないことをいい出す。日本のごく普通の大学は3月にしか卒業できないと思い込んでいる相手の誤解を解くのは容易ではない。容易ではないだけならまだしも、自分は日本の大学の制度を理解していると信じ込んでいる相手への過度の説明は、下手をすると遺恨となる。
だが、この2つはまだしも軽度な問題なのだ。真の難物はほかにある。実は、筆者は工学部の中の化学工学科を卒業しているのだが、実はこの「化学工学」という分野が極めて理解されにくいのである。そんなバカなと思われるかもしれないが、では「工業化学」と「化学工学」の違いが説明できるだろうか? この2つはどう違うのだろうか? 化学といえば、白衣を着たオジサンが試験管の中に化学物質を入れて混ぜている、というようなイメージを持つ人も多いと思う。このようなイメージは必ずしも正当なものではないが、物質を化学反応させているという点では、一応化学の内容に近い。そして、工業化学は、そのような化学を工業的に扱う研究を行う分野である。
では、化学工学は何を研究しているのかというと、実は化学製品(例えばエチレンやメタノール)を製造するプラントについて研究する分野となる。つまり、(過剰に単純化してしまえば)化学工学とは化学物質を研究するための学問ではなく、化学プラントという施設を作るための学問である。それを実現するためには、化学の知識だけでは十分ではない。物理や生物といった分野から環境問題や制御理論までの幅広い知識が必要とされる。筆者が所属していた研究室では、管を流れる流体の性質や、2つの物質を攪拌(かくはん)して混ぜ合わせる効率について研究していた。そして、筆者は、ニューラルネットとファジー理論(いずれも当時の流行技術)を併用した「学習する温度制御」を卒業研究として行った。いずれも、化学プラントを作るために必要とされる個別技術の研究ではあるが、「化学」を冠する化学工学科でそのようなことを行っていたということを分かっていただくのは極めて困難な作業となる。
しかし、化学プラントを作るため、ただそれだけのために独立した分野が必要なのだろうか? その答えはイエスである。確かに、そのような分野が必要とされていたらしい。化学工学については落ちこぼれの学生であった私が化学工学を語るのもおこがましいが、ここではその理由を象徴する「スケールメリット」という言葉について書きたい。なお、この一連の化学工学に関する話題は、一種の読み物として書かれた思い出話であり、不正確、不適切な記述を含んでいる可能性が高い。しかも、20年も前の学生時代の記憶によるものであって、現在の化学工学を語るものではない。そのあたりは、あまり信用しないようにお読みいただきたい。
学生時代に「化学工学とはスケールメリットで食う分野である」という言葉を聞いた記憶がある。ここでいうスケールメリットとは、巨大な化学プラントではほんのわずかでも効率を改善すると、それが莫大な金額の節約となって跳ね返るということを意味する。だからこそ、化学工学という学問を打ち立てて、限界まで効率を高めるための研究を行う価値があるわけである。効率改善の研究に膨大な手間を費やしたとしても、それに値する成果が得られるのは、大量生産を行うからである。
図3 スケールメリット |
しかし、同じ学生時代には「もうスケールメリットで食う時代は終わりだ」という話も聞こえた。もう大量生産の時代ではなく、これからは多品種少量生産の時代だというのである。
さて、ここからが最も印象が鮮明に残る話題である。大量生産から多品種少量生産に切り替える場合、もはや同じやり方が通用しないという。大量に作っていれば、わずかな改善が大きなコストを浮かせることになる。しかし、少量しか作らないのであれば、わずかな改善でわずかなコストしか浮かせられない。そして、改善のための研究のコストは、浮いたわずかなコストをあっさりと上回るだろう。つまり、赤字である。赤字になるやり方を採用することはあり得ない。
さて、このときに多品種少量生産に対応する方法をいくつか聞いた気がするが、強く印象に残っているのは組み替え式で複数の製品の製造に使用できる化学プラントであった。効率は良くないが、1つの施設で複数の製品を製造できるので、結果的に安く上がるというのである。果たして、このような化学プラントが成功し、普及したかどうかは化学工学を離れた私には分からない。しかし、生産の規模が変わることによって、生産を行う方法論も変わっていく、つまり対象の性質が変わるという考え方は、非常に鮮烈な印象を持って記憶に残っている。
図4 規模が変わると性質が変わる |
実は、規模(スケール)が変わると性質が変わるという事例はあちこちにある。化学工学科の落ちこぼれ学生だったころにゼミで勉強していたのは層流と乱流である。液体などの流体がパイプの中を流れるとき、流す速度が遅いときはきれいにそろって流れる。これを層流という。しかし速度を上げていくと、ある段階から乱雑に流れる乱流という状態に変わる。単に離れた場所に流体を送る場合は層流の方が少ないエネルギーで送ることができて有利なのだが、複数の物質を混ぜ合わせるときは乱流の方が有利となる。
さて、ここで問題なのは、層流と乱流を分ける条件はいろいろあるが、その1つが管の太さ(内径)だということである。どのような管でも、同じ速度で送れば必ず層流、あるいは乱流になるというものではない。つまり、より多くの流体を扱おうと太い管に交換したからといって、中の流体が同じように流れるという保証はないのである。この点に関して、流体を送る管にスケーラビリティは存在しない、ということができる。
図5 管の内径にスケーラビリティはない 流体には層流と乱流があり、性質が違う。すべての条件が同じでも管の太さを変えるだけで、層流と乱流が入れ替わることがある |
ちなみに、内径を変えれば常に性質が変わるというわけではないが、変わる可能性があるということを、この連載では「スケーラビリティはない」と称することにしよう。以下も同じである。
余談だが、層流と乱流の問題は、航空機の音速突破とも関係があるらしい。音の速さよりも速く飛ぶ航空機とそれ以下の速度で飛ぶ航空機はまったく形状が異なるが(前者は尖って見えることが多いが後者は丸く見えることが多いように思える)、その理由の1つが層流と乱流の性質の違いであるらしい。(次ページへ続く)
1/4 |
Index | |
XMLデータベース開発方法論(2) スケーラビリティの重大な誤解、“大は小を兼ねない” |
|
Page 1 ・前回のおさらいと今回のテーマ ・自らの最終学歴を語る三重苦 ・化学工学の華はスケールメリット ・層流と乱流、規模(スケール)が変わると性質が変わる例 |
|
Page 2 ・情報の規模が変わると性質は変わるか? |
|
Page 3 ・情報は人間の思いどおりにならない ・規模から見たRDBとAWKの違い |
|
Page 4 ・CPUパワーの拡大と中間領域の拡大 ・次回予告 |
XMLデータベース開発論 |
- Oracleライセンス「SE2」検証 CPUスレッド数制限はどんな仕組みで制御されるのか (2017/7/26)
データベース管理システムの運用でトラブルが発生したらどうするか。DBサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は、Oracle SE2の「CPUスレッド数制限」がどんな仕組みで行われるのかを検証します - ドメイン参加後、SQL Serverが起動しなくなった (2017/7/24)
本連載では、「SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「ドメイン参加後にSQL Serverが起動しなくなった場合の対処方法」を解説します - さらに高度なSQL実行計画の取得」のために理解しておくべきこと (2017/7/21)
日本オラクルのデータベーススペシャリストが「DBAがすぐ実践できる即効テクニック」を紹介する本連載。今回は「より高度なSQL実行計画を取得するために、理解しておいてほしいこと」を解説します - データベースセキュリティが「各種ガイドライン」に記載され始めている事実 (2017/7/20)
本連載では、「データベースセキュリティに必要な対策」を学び、DBMSでの「具体的な実装方法」や「Tips」などを紹介していきます。今回は、「各種ガイドラインが示すコンプライアンス要件に、データベースのセキュリティはどのように記載されているのか」を解説します
|
|