Oracle Sharding

Webスケール・アプリケーションの直線的なスケーラビリティ、障害分離、地理的分散

Oracle Shardingのアーキテクチャ


 

Oracle Shardingの概要

Oracle Shardingは、カスタム設計されたOLTPアプリケーションのためのスケーラビリティ機能および可用性機能です。ハードウェアやソフトウェアを共有しないOracle Databaseのプールで、データの分散とレプリケーションを可能にします。アプリケーションは、データベースのプールを単一の論理データベースとして認識します。データベース(シャード)をプールに追加するだけで、どのプラットフォーム上でも、いずれのレベルにも柔軟に(データ、トランザクション、およびユーザーを)拡張できます。Oracle Database 12.2.0.1の最初のリリースで、1,000シャードまでのスケールアップがサポートされています。

Oracle Shardingでは、スケーラビリティに対して似たようなアプローチを使用する自社製のデプロイメントと比較して、より優れたランタイム・パフォーマンスと容易なライフ・サイクル管理を実現します。また、リレーショナル・スキーマ、SQL、その他のプログラム・インタフェース、複雑なデータ型のサポート、オンライン・スキーマ変更、マルチコアのスケーラビリティ、高度なセキュリティ、圧縮、高可用性、ACIDプロパティ、読取り一貫性、JSONによる開発者の俊敏性など、エンタープライズDBMSのさまざまなメリットを実現します。
 

Oracle Shardingのメリット

Oracle Database 12c Release 2でシャーディングを使用すると、多数のメリットが得られます。たとえば、次のようなメリットが得られます。
  • 直線的なスケーラビリティと完全な障害分離。Oracle Shardingに合わせて設計されたOLTPアプリケーションでは、追加のスタンドアロン・サーバーに新しいシャードを展開するだけで、どのプラットフォーム上でも、いずれのレベルにも柔軟に(データ、トランザクション、およびユーザーを)拡張できます。計画外停止や計画メンテナンスのためにシャードが利用不可になった場合やパフォーマンスが低下した場合、そのシャードのユーザーにのみ影響し、他のシャードのユーザーのアプリケーション利用やパフォーマンスには影響しません。アプリケーションにもっとも古い実行バージョンとの下位互換性がある場合は、シャードごとに異なるOracle Databaseリリースを実行できるため、データベースのメンテナンスを行っている間、アプリケーションの可用性を容易に維持できます。

  • グローバルなデータ分散によってデータ近接性を実現し、データをコンシューマの近くに保管します。また、データ主権により、データ・プライバシ規制に対応します。

  • さまざまなライフ・サイクル管理タスクの自動化により、簡素化を実現します。これらのタスクには、シャードおよびレプリケーションの自動作成、システム管理でのパーティション化、単位コマンドでのデプロイメント、きめ細かいリバランスなどがあります。

  • インテリジェントなデータ依存ルーティングを使用して、卓越した実行時パフォーマンスを実現します。

リレーショナル・スキーマ、SQL、その他のプログラム・インタフェース、複雑なデータ型、オンライン・スキーマ変更、マルチコアのスケーラビリティ、高度なセキュリティ、圧縮、高可用性、ACIDプロパティ、読取り一貫性、JSONによる開発者の俊敏性など、シャーディングのすべてのメリットをエンタープライズRDBMSの機能を損なうことなく得られます。