クラウドDB
クラウドという言葉も完全に業界のはやり言葉みたいになってきましたが、それとともにSaaSの派生言葉としてXaaSというものが、いろいろでてきています。
ここでも触れられているように、PaaS,TaaS,HaaSという言葉があるようです。 今後もこの亜流のものが増えていくことでしょう。
ところで、ここでの、メインテーマは、クラウド向けのサービスが扱うデータおよびそれを支えるデータベース管理システムとして何故RDBMSがあまり使われていないかという点です。
残念ながら、この記事を読む限り、その答えとなる核心に触れる記述はありません。 この記事も講演内容の抜粋なので、どうも肝心なポイントが抜けているような感じがします。
私なりの想像を含めて、この記事を分析してみたいと思います。
ここでのヒントとしては、まずO/Rマッピングに触れられていますが、これは何を言いたいのでしょうか?
リレーショナルデータベースにアクセスするための手段として、SQLが一般的ですが、それだとサービスを記述するものとしては、粒度が細かすぎるということなんでしょうかね?
その解決策としてO/Rマッピングがあると思うのですが、(ここでの論調もそういう感じにとれるんですが)、新しいサービスの開発毎にRDBMSとそのオブジェクトモデルのマッピングを行なうのがめんどうといえば、面倒です。(これは、いつもCachéの宣伝文句なんですが)
あとは、クラウド用のデータサービスのいくつかの事例紹介といった感じですが、ここでのヒントらしきものは、MySQLをベースとしたクラウド用データサービスプロジェクトdrizzleの説明に、
- 信頼性
- モダンなアーキテクチャによるスケーラビリティ、高速性
- 設置、管理の簡便性のためのシンプルなアーキテクチャ
というのがあります。
信頼性は、RDBMSもそこそこあると思いますが、クラウドに対しては何か足りないものあるんでしょうか?
確かにマシン追加したからといって、性能がリニアに上がっていくかというと、現状のアーキテクチャではおそらく無理でしょう。
設置、管理もサービスノードが増えていくと、簡便さを維持するのは大変だろうし、RDBMSに付き物の再編成なんて、クラウド環境では、行なうタイミングなどおそらくないでしょうし。
おそらくRDBMSは、様々な制約の中で、管理可能であっても、クラウドになると、そういう制約条件を付けることが既に難しいので、対応が難しいといっているのかなあと勝手に思っています。
つまり、RDBMSは、予定調和の世界ではなんとかマネージできたけれども、不特定多数が相手のサービスとなると、要件を予めフィックスすることが困難となり、管理不能に陥ると言っているのか?
何かちょっと違うなあと思いつつ、この講演を行なった人々の話したことを直接聞いてみたいなあと思いました。