このトピックでは、読み取り専用列ストアノードでサーバーレス機能を有効にする方法について説明します。
前提条件
少なくとも1つの読み取り専用列ストアノードを含むPolarDB for MySQL 8.0 Enterprise Editionクラスターが作成されます。
実装方法
仕様が定義された読み取り専用列ストアノードのスケーリング範囲を指定する: 仕様が定義された読み取り専用列ストアノードでサーバーレス機能を有効にできます。 これにより、ワークロードが定義された仕様の機能を超えた場合に、一時的なスケールアップを実行できます。
サーバーレス読み取り専用列ストアノードの作成: サーバーレス読み取り専用列ストアノードには仕様が定義されておらず、ワークロードに基づいてスケーリングできます。 この方法は、コスト効率に重点を置いたビジネスシナリオに適しています。
メリット
ビジネスピーク時およびオフピーク時の効果的なコスト削減
PolarDBのサーバーレスアーキテクチャでは、オフピーク時にクラスターの設定を自動的にダウングレードし、ピーク時に設定をアップグレードして負荷変動に対処できるため、コストを効果的に削減できます。 12ピーク時に32コアと64 GBのメモリが必要で、12オフピーク時に16コアと32 GBのメモリが必要なシナリオを想定して、パフォーマンス要件を満たします。 32コアおよび64 GBのメモリの構成と比較して、サーバーレスアーキテクチャを使用する16コアおよび32 GBのメモリの構成は、計算ノードのコストを25% 削減します。
最適化されたサーバーレスアーキテクチャ
読み取り専用ノードに実装されたインメモリ列インデックス (IMCI) 機能は、サーバーレスアーキテクチャの柔軟なリソース機能を最適化し、パフォーマンスとユーザーエクスペリエンスをさらに向上させます。
リソース使用率の向上: 読み取り専用列ストアノードは、キャッシュ、スレッドプール、実行メモリなどの複数の主要なシステムパラメーターをオンラインで設定できる包括的なリソース管理メカニズムを提供します。 サーバーレスアーキテクチャでは、最適なリソース使用率を確保するためにリソースのスケールアップまたはスケールダウン時にパラメーターが自動的に変更されます。
高速化SQLクエリ: 読み取り専用列ストアノードは、主に分析シナリオで使用されます。 複雑なSQLクエリを迅速に実行するために、多くの場合、単一の複雑なSQLクエリに大量のリソースが割り当てられます。 複雑なSQLクエリの数が増えると、リソースの競合が発生する可能性があります。 その結果、キュー内の後続の単純なSQLクエリは複雑なクエリによってブロックされ、SQLクエリが遅くなります。 サーバーレスアーキテクチャでは、読み取り専用列ストアノードは、SQLキューイングの状況に基づいて追加のリソースを自動的に割り当て、キューイングによる低速SQLの問題を軽減します。
説明この利点は、次のエンジンバージョンでサポートされています。
リビジョンバージョンが8.0.1.1.39以降のPolarDB for MySQL 8.0.1。
リビジョンバージョンが8.0.2.2.20以降のPolarDB for MySQL 8.0.2。
起動時のIMCIの高速読み込み: クラスターの再起動後、読み取り専用列ストアノードが内部インデックス情報を再構築するまでに数分かかります。 この期間中、IMCIは利用できません。 サーバーレスアーキテクチャでは、読み取り専用の列ストアノードはエラスティックリソースを使用して再構築プロセスを高速化し、IMCIを迅速に使用できるようにします。
説明この利点は、次のエンジンバージョンでサポートされています。
リビジョンバージョンが8.0.1.1.36以降のPolarDB for MySQL 8.0.1。
リビジョンバージョンが8.0.2.2.20以降のPolarDB for MySQL 8.0.2。
高速化されたログ再生: IMCIは、物理ログの再生に基づいて作成されます。 ただし、システムがSQLクエリにほとんどのリソースを割り当てる場合、IMCIを作成するためのリソースが不十分なため、IMCIログの再生待ち時間が増加する可能性があります。 リプレイの待ち時間により、クエリが他のノードにルーティングされるか、ログのリプレイが完了するのを待ち、SQLクエリが遅くなる可能性があります。 サーバーレスアーキテクチャでは、読み取り専用列ストアノードは、ログ再生のために追加のリソースを自動的に割り当てて、ログ再生のパフォーマンスを向上させます。
説明この利点は、リビジョンバージョンが8.0.1.1.45以降のPolarDB for MySQL 8.0.1でサポートされています。
高速化されたDDL処理: IMCIでDDLステートメントを処理するには、長時間が必要です。 サーバーレスアーキテクチャでは、列ストアノードがスレッドリソースを適応的に増やし、DDLステートメントの処理を高速化します。
説明この利点は、次のエンジンバージョンでサポートされています。
リビジョンバージョンが8.0.1.1.44以降のPolarDB for MySQL 8.0.1。
リビジョンバージョンが8.0.2.2.25以降のPolarDB for MySQL 8.0.2。
手順
仕様が定義された読み取り専用列ストアノードのスケーリング範囲の指定
PolarDBコンソールにログインします。
左上隅で、クラスターがデプロイされているリージョンを選択します。
クラスターを見つけて、そのIDをクリックします。
[基本情報] ページの [データベースノード] セクションで、[サーバーレスの有効化] をクリックします。
[サーバーレスの有効化] ダイアログボックスで、[単一ノードの最大リソース] および [単一ノードの最小リソース] パラメーターを設定します。 詳細については、「仕様が定義されているクラスターのサーバーレス機能の有効化」をご参照ください。
[OK] をクリックします。
サーバーレス機能は、仕様が定義された読み取り専用列ストアノードで有効になります。
サーバーレス読み取り専用列ストアノードの作成
左側のナビゲーションウィンドウで、クラスターをクリックします。
左上隅で、クラスターがデプロイされているリージョンを選択します。
クラスターを見つけて、そのIDをクリックします。
[基本情報] ページの [データベースノード] セクションで、[サーバーレスの有効化] をクリックします。
[サーバーレスの有効化] ダイアログボックスで、[読み取り専用列ストアノード] パラメーターを設定し、[OK] をクリックします。 この例では、1つの読み取り専用列ストアノードが作成されます。
PolarDBは、リソースの範囲が1つのPolarDB Capacity Unit (PCU) から32個のPCUまでの読み取り専用列ストアノードを自動的に作成します。