アプリケーションの起動前にデータベースをウォームアップする

アプリケーションをリリースする前に、テストデータの読み込みを使用してデータベースをウォームアップし、Spanner の並列化機能を活用することをおすすめします。

Spanner は分散型データベースで、データベースのサイズが大きくなると、データのキースペースはスプリットというまとまりに分割されます。各スプリットは、テーブルのサブセットを含む行の範囲です。Spanner は、負荷とサイズに基づいてデータを分割して、個々のスプリットを動的に移行し、それぞれのスプリットを別のサーバー リソースに割り当てることで、データベース全体の負荷を分散させます。

最初に空のデータベースにデータを挿入すると、Spanner はそのデータを単一のスプリットに書き込みます。データベースはまだ「コールド」状態です。より多くのデータを挿入すると、Spanner はそのデータを分割し、利用可能な他のサーバー リソース間で負荷を分散します。Spanner は、並列処理を最大化してパフォーマンスを向上させるために、利用可能なサーバー リソースに分割された「ウォーム」状態になっています。

ベスト プラクティスとして、Spanner がウォーム状態になり、サーバー リソース間でスプリットの作成と負荷分散がすでに行われていれば、アプリケーションを起動することをおすすめします。データベースをウォームアップして、テストデータの読み込みを準備するには、次の手順に従います。

  1. テストデータの読み込み用に生成した主キーが、本番環境のトラフィックに使用しているキーと同じキースペースに存在し、同じ配布プロパティであることを確認してください。
  2. リリースから 2 日以内に負荷テストを行います。少なくとも 1 時間は、想定されるピーク時の負荷でテストを行います。この負荷テストにより、Spanner は負荷に応じて分割を行い、複数のスプリットを生成します。
  3. 負荷テストが完了したら、負荷テストで生成された行をテーブルから削除します。ただし、テーブル自体は削除しないでください。これにより、リリース時に使用可能なスプリットが残ります。