メイン コンテンツにスキップ
プレビュー

改善された Azure Analysis Services のクエリ レプリカ同期のプレビュー

公開日: 1月 18, 2020

新しい Azure Analysis Services 設定 (プレビュー) は、パフォーマンス、およびスケールアウト環境でのクエリ レプリカ同期の整合性が改善されます。クエリ スケールアウトは、1 つまたは複数のクエリ レプリカ全体をクライアント クエリを配布することができ、コンカレンシーが多く発生するワークロードの応答時間を短縮することができます。クエリ レプリカの同期では、データがクエリ レプリカ データベースにレプリケートされます。

既定では、クエリ レプリカは完全に (増分ではなく) リハイドレートし、段階的に発生します。クエリのために 1 つ以上のレプリカがいつでもオンラインになっているようにするため、レプリカを一度に 2 つずつ (最低 3 つのレプリカがあると仮定) デタッチしてアタッチします。このプロセスの実行中、クライアントはオンライン レプリカの 1 つに再接続することが必要になる場合があります。

新しい ReplicaSyncMode 設定を使用し、クエリ レプリカの同期を並行して指定できるようになりました。最適化されたクエリとレプリカの同期には、以下の利点もあります:

  • すべてのレプリカが並列で同期されるため、同期にかかる時間が大幅に短縮されます。
  • すべてのレプリカが並列で同期されるため、同期処理中のレプリカ間のデータの一貫性が非常に高まります。
  • データベースは、同期処理全体を通してすべてのレプリカでオンラインに維持されるため、クライアントは再接続する必要がありません。
  • インメモリ キャッシュは、変更されたデータのみ差分更新されるため、モデルを完全にリハイドレートするよりもかなり高速に処理できます。

最適化された同期のメリットの例を示します。製品チームが 3 つのレプリカを持つ S8v2 上で約 84 GB のサイズのデータベース上でテストを実施しました。増分同期の場合は約 2 分、非増分同期では約 5 分かかりました。7 つのレプリカを持つ S8v2 の同じデータベースの場合、増分同期の時間に変化はありませんでしたが、非増分同期での時間は 11 分に増加しました。

ReplicaSyncMode に指定できる値:

  • 1 (既定値): ステージでの完全なレプリカ データベースのリハイドレート。
  • 2: 並列での最適化された同期。

FastReplicaSync (002)

ReplicaSyncMode=2 に設定する場合、クエリ レプリカにより追加メモリが使用されます。これは、キャッシュをどの程度更新する必要があるかにより変わります。データベースをオンライン上でクエリに使用できるようにするには、変更されたデータ量に応じて、レプリカのメモリを最大で 2 倍にする必要があります。これは、古いセグメントと新しいセグメントの両方が同時にメモリに保持されるためです。レプリカ ノードには、プライマリ ノードと同量のメモリが割り当てられます。通常、更新操作のためにプライマリ ノードに余分なメモリがあるため、レプリカのメモリが不足する可能性はほとんどありません。さらに、一般的なシナリオは、データベースがプライマリ ノードで増分更新されるため、メモリを 2 倍にする必要はありません。同期操作で “メモリ不足” というエラー メッセージが発生した場合、既定の手法 (一度に 2 つずつアタッチ/デタッチ) を使用して再試行されます。

詳細情報は、Analysis Services のクエリ スケールアウトを参照してください。

  • Azure Analysis Services
  • Features
  • Management
  • Services