Spanner Omni の主な用語

このドキュメントでは、Spanner Omni のコアコンセプトとデプロイ トポロジについて説明します。リージョン、ゾーン、サーバー間の階層関係について説明し、これらのコンポーネントがデプロイ内のデータ複製とストレージにどのように関連しているかについて説明します。

Spanner Omni のコンセプト

以降のセクションでは、Spanner Omni のドキュメント全体で使用されている用語の詳細な定義を示します。これらのコンセプトを理解することで、システムのアーキテクチャと運用動作を明確に把握できます。

デプロイ

Spanner Omni のデプロイ。データセンターまたはパブリック クラウド アカウントのデータベースを使用できます。デプロイ構成で指定されたパラメータに従ってデプロイを作成します。Spanner Omni のデプロイは、Google Cloudの Spanner インスタンスに相当します。

デプロイ構成

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 ~ 9 の奇数にする必要があります。サーバーの数が偶数の場合、デプロイが失敗する可能性があります。ゾーンを構成するときは、サーバーをルートサーバーとして指定します。開発またはテストには 1 つ、高可用性の本番環境ゾーンには 3 つを使用することをおすすめします。

デプロイを計画する際は、ルートサーバーの数を慎重に検討してください。デプロイの作成後にルートサーバーの数を変更できますが、おすすめしません。

非ルートサーバー

非ルートサーバーはユーザーデータを保存して提供し、ゾーンのコンピューティング容量とストレージをスケーリングする方法を提供します。ワークロードの要件に応じて、デプロイにルート以外のサーバーを必要な数だけ追加できます。デプロイの作成後に、非 root サーバーの数を変更できます。

分割

Spanner スプリットは、連続したデータ行の範囲を保持します。Spanner は、主キーで行を順序付けます。Spanner は、各スプリットのレプリカを作成し、各ゾーンに保存します。

ストレージ

サーバーに接続されている永続ストレージ。

ゾーン

1 つ以上のサーバーのグループ。データ レプリケーションでは、レプリカごとに 1 つのゾーンを作成する必要があります。オンプレミス環境では、ゾーン間のインフラストラクチャ(VM、ディスク)の共有を最小限に抑えることをおすすめします。クラウド デプロイの場合は、ゾーンを AWS のアベイラビリティ ゾーンまたは Google Cloudのゾーンに合わせます。