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

サーバーレス専用 IMCI ノードの作成
左上隅で、クラスターがデプロイされているリージョンを選択します。
対象のクラスターを見つけて、その ID をクリックします。
-
基本情報 ページの データベースノード セクションで、Serverless の有効化 をクリックします。
-
Serverless の有効化 ダイアログボックスで、列ストアインデックス読み取り専用ノードの数 の数を設定し、OK をクリックします。この例では、1 つの読み取り専用 IMCI ノードが作成されます。
設定が適用されると、PolarDB は 1 から 16 PolarDB 容量単位 (PCU) の間で動的にスケーリングする読み取り専用 IMCI ノードを自動的に作成します。
