SQL Server産みの親が語る、SQL ServerからCloudDB、SQL Azureへの歴史
米Microsoft テクニカルフェローのデイビッド・キャンベル氏 |
SQL Serverの変遷 |
CloudDBのタイムライン |
日本マイクロソフト株式会社は2月23日、データベースに関連したイベント「エンタープライズ・データベース・アカデミー」を開催した。最初のセッションでは、「これからのミッションクリティカルシステムを語ろう」と題し、米Microsoft テクニカルフェローのデイビッド・キャンベル氏による特別講演が行われた。
キャンベル氏は、SQL Serverにクエリプロセッサや分散トランザクション、ロック管理機能などを実装したことでも知られ、ミッションクリティカルな環境においてSQL Serverが幅広く利用される礎を築いた人物である。また、RDBエンジンをパブリッククラウドに実装した「SQL Azure」の開発責任者でもある、
1994年にマイクロソフトに入社したキャンベル氏は、SQL Server 6.0の開発後期から開発に参加している。もともとSQL ServerはSybaseをベースに開発された製品であったが、1998年にリリースされたSQL Server 7.0からは、既存のコードをすべて捨て、まったく新しい製品として開発されている。
この刷新についてキャンベル氏は、「80年代においてSybaseはすばらしい製品でしたが、90年代の半ばには時代遅れとなっていました。ある朝、目覚めた私は、Sybaseのアーキテクチャの上に新しいロック管理の機能を実装することは無理だと気付きました。そこで、まったく新しいアーキテクチャでのSQL Serverの開発に取り組んだのです」と語る。また、SQL Server 7.0のアーキテクチャについてキャンベル氏は、今後15年から20年にわたって使い続けることを念頭において設計したという。
SQL Serverは、その後も順調な進化を遂げている。ミッション クリティカル環境においての高可用性についてキャンベル氏は、「MicrosoftのHotmailやWindows Live IDといったサービスは、SQL Serverの上に実装され、しかも100%近い可用性を保っています」と自社サービスでの成功を強調する。もちろん、これらのサービスで利用されているSQL Serverは自社サービスのために開発されたものではなく、一般に販売されているSQL Serverとまったく同じものである。
そして2006年に入り、キャンベル氏は“CloudDB”として知られる技術の開発に着手している。同氏は、「2009年8月に初めて実装されたCloudDBは、Exchange Hosted Archive(EHA)のためのものでした。同年の11月にSQL Azureの最初のバージョンがリリースされたのですが、これらの2つは共通のアーキテクチャを持っていますが、異なるニーズのために用意された別のものでした」と語り、本来のCloudDBは、Microsoft社内のインターネットサービスで利用するために開発されたことを明かしている。しかし、その後クラウドを取り巻くさまざまな状況の変化から、CloudDBのテクノロジーをSQL Azureでも利用することに決めたという。
クラウド上のサービスとして提供されるSQL Azureは、ユーザーから見るとあたかもSQL Serverであるかのように見える。つまり、リレーショナル・データ・モデルとして提供されたサービスである。SQL Serverで使用されているTransact-SQLは、SQL Azureでもサポートしているため、いくつかの機能制限はあるものの、SQL Serverを利用するアプリケーションから、クラウド上のSQL Azureにアクセスすることができるようになっている。
SQL Azureは、大規模な分散型システムに対応することのできるサービスである。キャンベル氏は、「何千台、何万台というサーバーが接続している環境においては、常にストレージなどの障害の可能性があります。そのため、どこかのサーバーがダウンしたとしても、サービスが継続的に提供できるようにしなければなりません」と語り、その可用性についても自信をのぞかせている。SQL Azureでは、データは必ず3つのレプリカ(セカンダリ)を作るように設計されている。これらのレプリカは、プリンシパルとは異なるノードに分散して配置される。つまり、プリンシパルがダウンしても、異なるノードに配置されたレプリカが次のプリンシパルとなって、サービスを提供し続けるのである。
また、それぞれのノードは、相互にリンクして死活監視を行っている。そのため、いずれかのレプリカ(あるいはプリンシパル)が格納されているノードがダウンしたとしても、自動的に切り替えて新たなレプリカを作成するようになっている。
SQL Servicesのコンポーネント図。データは、各ノードに分散されて保存される | サーバーがダウンしてもサービスを続けられるように、データのレプリカが作られ、プリンシパルがダウンするとレプリカが次のプリンシパルとしてサービスを提供する |
キャンベル氏はミッションクリティカル環境におけるマイクロソフトの立場について、「なぜミッションクリティカルシステムでMicrosoftの技術を利用するのかと聞かれた場合、私は次のように答えています。『インターネットサービスを提供する企業のうち、上位10社にMicrosoftは入っています。そして、データベースサービスを提供する企業の上位10社にも、Microsoftは入っています。では、その両方で上位10社に入っている企業はほかにあるでしょうか?』と」
最後にキャンベル氏は、「今後、データから新しい価値を引き出すことは、ビジネスにとって重要になってきます。データのポテンシャルは、企業にとって大きな意味をもつことになるでしょう」と語り、今後データベースシステムは、ますますビジネスにとって重要になっていくであろうことを示唆した。