選択的コンバージェンス
ユビキタスな環境が進化するにつれ、これまでサーバーで使用されてきた高度なアプリケーションの多くもまた、ユビキタスなデバイスを必要とするようになるであろう。しかしながら、PDAやUMPCといった高性能のデバイスでさえ、いまだにサーバー型DBMSのように多くの機能を備えた本格的なDBMSを稼動するための処理能力を持ち合わせていない。したがって、本格的なDBMSのモジュールを選択的に整理して軽量型DBMSにする選択的コンバージェンスの技術は、この先きわめて重要になるだろう。近い将来、選択的コンバージェンスをサポートする新しいDBMSアーキテクチャの設計と実装に関する研究が盛んになると我々は予想している。
「選択的コンバージェンス」または「コンポーネント化」(参考資料2)とは単に、配備済みアプリケーションには必要不可欠なデータベースコンポーネントだけを含めるという発想です。したがって、これは研究課題というより、エンジニアリングの問題であると私は考えます。いずれにしても、選択的コンバージェンスにはメリットと同時にトレードオフもあります。第一に、アラカルトにコンポーネントを取捨選択できるセーバーアーキテクチャでは、テストの実施が一段と困難になります。第二に、サーバーコードとデータストアの間に依存関係があることが多いため、特にサーバーをアップグレードする際や新しいアプリケーションの条件などによって、コンポーネント化が格段に複雑になることがあります。
Windows Mobile用のSQL Anywhereでは、いくつかのメモリ消費量の多いクエリ実行演算子と、マルチデータベースアクセスのサポートを無効にしています。またこれまでに述べてきた意味でのコンポーネント化はサポートされていません。アプリケーションの実行に必要なUltra Lightのコード要素だけをリンクできるという点で、Ultra Lightの静的ライブラリはコンポーネント化の機能をもつと言えます。
フラッシュ用に最適化されたストレージシステム
フラッシュストレージの特徴を活かすキャッシュマネジメントとクエリ実行技術は、さらなる研究の対象として多くの実りをもたらす分野でしょう。現在のSQL Anywhereはフラッシュ用に最適化されたクエリ処理アルゴリズムの実装を搭載していませんが、DBAがキャリブレーション処理を介してサーバーのコストモデルをカスタマイズする機能は提供されています。そしてそのキャリブレートされたモデルはどのようなデータベースにも配備する(埋め込む)ことができます。
フラッシュ用に最適化されたストレージフォーマットの問題点は、他のOSファイルシステムとの非互換性です。SQL Anywhereは、サポートするすべてのプラットフォーム(Mac OS/X、Sun、AIX、Linux、Windows、およびWindows Mobileを含む)においてデータベースフォーマットが同一であり、これは業界でも類を見ません。データベースのイメージコピーはただのファイルコピーであり、コピーすれば同じデータベースをどのプラットフォームでも起動できます。そのためデータベースの配備はごく簡単に行うことができますし、配備先のデバイスで問題が発生した場合の問題特定も容易になります。
データ同期
データ同期に関する主な研究課題は、(1)多数のユビキタスなデバイスとサーバーとのデータ同期の効率的な維持、(2)ユビキタスなデバイスとサーバーとの間に同じデータの違うバージョンが存在する場合の競合解消、(3)データ同期中にシステム障害が起きた場合のリカバリと同期の再開、である。
私にはこれらのエンジニアリングの問題は既に解決済みであると思われます。ただし、多数のデバイスと言うときの「多数」を定量化することは重要です。2009年には、2010年度の米国国勢調査のために、140,000台を超えるWindows MobileのハンドヘルドデバイスにUltra Lightが配備されました。これらはiAnywhereのMobile LinkテクノロジーによってOracleの統合サーバーと同期され、そこでMobile Linkの競合解消メカニズムが利用されました。研究者の中でもとりわけDaudjeeとSalem(参考資料7~8)はデータベースの複製における正確性の問題について調査していますが、この調査では、実際の現場で通常使われるよりも高い隔離レベルが使われています。
非構造化データおよび半構造化データ
ユビキタスなデバイス(PDAとUMPCを含む)は非構造化データおよび半構造化データをサポートする本格的なDBMSを稼動するための処理能力を持ち合わせていないため、ユビキタスなデバイスの仕様と性能を考慮に入れた軽量型の非構造化・半構造化データ管理モジュールの開発研究がなされるべきである。たとえば、本格的なDBMSでは既存のクエリ処理法を数多く実装し、それらをコストベースの最適化フレームワークの下で組み合わせて最適なクエリ評価プランを選択するというやり方が可能である。しかしユビキタスなデバイスではメモリとストレージが小さいため、多数のクエリ処理法と最適化モジュールを搭載することは無理かもしれない。
ユビキタスなプラットフォームでも、十分なメモリが搭載されているものであれば(事実上すべてのWindows Mobileデバイスがこれに該当)、コストベースのクエリ最適化は間違いなく実現可能です。実際、SQL Anywhereがこのことを証明しています。我々の経験からすると、ハンドヘルドデバイス上の高度なビジネスアプリケーションでは、使用されるクエリやスキーマの複雑さは変わりません。クエリのジョイン度が20や30(またはそれ以上)は当たり前です。事実、SQL Anywhereの顧客の中には、ハンドヘルドデバイスのCPUの馬力不足を克服するためにマテリアライズドビューを利用している人もいます。複雑なクエリの場合には、これがパフォーマンスの問題を引き起こす可能性があります。
この論文で検証された他社の市販製品とは異なり、SQL Anywhereの最新リリースであるSQL Anywhere 12は、Windows Mobileハンドヘルドを含むすべてのプラットフォームでXML、全文検索、そして空間データをサポートしています。