スケールアウト可能なRDBMS

ここ数年BigTableなどスケールアウト可能なKey-Value型のデータベースが注目されました。しかし、エンタープライズアプリケーションで現在利用されているデータベースのほとんどはSQLServerOracleなどのリレーショナルデータベース(RDBMS)です。Key-Value型データベースのスケールアウトの魅力は大きいのですがSQLが使えないやトランザクションに制限があるなどデメリットも多く、エンタープライズアプリケーション分野への普及はなかなか難しく感じます。個人的にはRDBMSとKey-Valueの両方を利用して厳密なトランザクションが必要なところはRDBMS、履歴など大量データの取り扱いが必要なところはKey-Value型で処理するような良いとこどりができればなと考えていました。

そんな中、SQL Azure フェデレーション接続モデルのプレビュー の記事を見ました。このフェデレーション機能はあるキーで関連したデータをグループ化して分割配置するための仕組みです。たとえば、顧客単位にフェデレーションを組む場合は、顧客ID単位に顧客テーブルや関連する注文テーブルをグルーピング(これをAUと呼ぶようです)して、顧客IDによって物理的な配置先を調整できるようにすることで、スケールアウトできるようにする技術のようです。*1

今後、RDBMSにもよりスケールアウト可能な仕組みが追加されていく可能性があり、RDBMSはスケールアウトできないはという考えは変わっていくかもしれません。

*1:この技術に関連しているか不明ですが、そういえばSQLServerってデータパーティショニング機能があったなということを思い出しました。