このドキュメントでは、Spanner Omni のコアコンセプトとデプロイ トポロジについて説明します。リージョン、ゾーン、サーバーの階層関係について説明し、これらのコンポーネントがデプロイ内のデータ レプリケーションとストレージにどのように関連しているかについて説明します。
Spanner Omni のコンセプト
以降のセクションでは、Spanner Omni のドキュメント全体で使用される用語の詳細な定義について説明します。これらのコンセプトを理解することで、システムのアーキテクチャと動作を明確に把握できます。
デプロイ
データセンターまたはパブリック クラウド アカウントのデータベースを使用できる Spanner Omni のデプロイ。デプロイ構成で指定されたパラメータに従ってデプロイを作成します。Spanner Omni のデプロイは、 の Spanner| インスタンスに相当します Google Cloud。
デプロイ構成
Spanner Omni のデプロイのリージョン、ゾーン、サーバーの配置と仕様を指定します。単一サーバー、単一リージョン、またはマルチリージョン デプロイ構成を選択できます。
場所
のリージョンに相当します。 Google Cloud 2 つのリージョン間のネットワーク遅延は無視できません。オンプレミス デプロイの場合は、独自のリージョンを定義できます。クラウド デプロイの場合、リージョンはそれぞれのクラウド プロバイダのリージョンと一致する必要があります。1 つのリージョンに複数のゾーンを設定できます。
プロセス
Spanner サーバーは、複数のプロセスをフォークして管理します。たとえば、TimeServer、spanserver はすべて Spanner のプロセスです。個々のプロセスには、CPU やメモリ使用量などのモニタリング統計情報があります。プロセスは、ポートを開いてデプロイ内の他のサーバーと通信できます。
レプリカ
Spanner は、データの可用性と地理的な局所性を確保するために、データを複製します。簡単に言うと、Spanner はすべてのデータを行に編成します。Spanner は、これらの行の複数のコピー(レプリカ)を作成し、地理的に異なる場所に保存します。 Spanner は、Paxos ベースの同期レプリケーション方式を使用しています。この方式では、書き込みをデータベースに commit する前に、投票レプリカがすべての書き込みリクエストの採決を行います。Spanner と同様に、 Spanner Omni には、読み書き、読み取り専用、ウィットネスの 3 種類のレプリカがあります。詳細については、Spanner ドキュメントのレプリカタイプをご覧ください。
サーバー
サーバーは、Spanner Omni サーバーが実行される VM やコンテナなどのコンピューティング リソースです。各サーバーには、独自のシステム リソース(CPU、メモリ、ストレージ)があります。サーバーは、ユーザーデータを保存して提供することで、Spanner Omni の機能を提供します。
ルートサーバー
ルートサーバーは、ゾーンをサポートするための重要なメタデータを保存します。たとえば、ルートサーバーはサーバー メンバーシップやその他のゾーン構成情報を保存します。ルートサーバーは整合性にクォーラム アルゴリズムを使用するため、ゾーン内のルートサーバーの数は奇数にする必要があります。非常に小さいゾーンの場合は 1 つ、大きいゾーンの場合は 3 ~ 5 つです。デプロイを計画する際は、ルートサーバーの数を慎重に検討してください。デプロイの作成後にルートサーバーの数を変更できますが、おすすめしません。
非ルートサーバー
非ルートサーバーはユーザーデータを保存して提供し、ゾーンのコンピューティング容量とストレージをスケーリングする方法を提供します。ワークロードの要件に応じて、デプロイに非ルートサーバーをいくつでも追加できます。デプロイの作成後に非ルートサーバーの数を変更できます。
分割
Spanner スプリットは、連続する行のデータ範囲を保持します。Spanner は、主キーで並べ替えます。Spanner は、各ゾーンに保存する各スプリットのレプリカを作成します。
ストレージ
サーバーに接続された永続ストレージ。
ゾーン
1 つ以上のサーバーのグループ。データ レプリケーションの場合は、レプリカごとに 1 つのゾーンを作成する必要があります。オンプレミス デプロイの場合は、ゾーン間のインフラストラクチャの共有(VM、ディスク)を最小限に抑えることをおすすめします。クラウドデプロイの場合は、ゾーンを AWS のアベイラビリティ ゾーンまたは Google Cloudのゾーンに合わせます。