列ストアノードが再起動すると、ノードがインメモリー列指向インデックス (IMCI) と行指向データの間のマッピングを再構築する間、IMCI は LOADING_NCI 状態になります。これらのマッピングにより、Hybrid Transactional and Analytical Processing (HTAP) ワークロードにおけるリアルタイムかつ高同時実行性のデータ更新が可能になります。
この期間中、書き込みは中断されずに継続されますが、読み取り動作はパラメーター構成によって変化します。LOADING_NCI 状態は、列指向データのボリュームとクラスターの仕様に応じて、数秒から数時間続くことがあります。
IMCI 状態の確認
INFORMATION_SCHEMA.IMCI_INDEXES をクエリして、列ストアノード上のすべての IMCI の現在の状態を確認します。
INDEX_STATE の値 | 意味 |
|---|---|
LOADING_NCI | 列ストアノードが再起動し、インデックスマッピングが再構築中です。読み取り動作は imci_enable_read_during_load_nci パラメーターに依存します。 |
COMMITTED | 再構築は完了しています。読み取りはリアルタイムで最新のデータを返します。 |
| その他 | データを読み取ることはできません。 |
書き込みへの影響
LOADING_NCI 状態の IMCI への書き込みはブロックされず、データはリアルタイムで更新され続けます。ただし、IMCI と行指向データの間のマッピングが完全に確立されていないため、これらの更新は IMCI にキャッシュされるだけで、すぐにクエリすることはできません。
読み取り整合性への影響
imci_enable_read_during_load_nci パラメーターは、LOADING_NCI 状態の間に IMCI が読み取りリクエストをどのように処理するかを制御します。
| インデックスの状態 | imci_enable_read_during_load_nci | 読み取り動作 |
|---|---|---|
LOADING_NCI | ON | スナップショット読み取りが提供されます。いずれかの IMCI が LOADING_NCI 状態の場合、すべての IMCI がスナップショット読み取りにフォールバックします。スナップショットは、列ストアノードが失敗する前の最後の完全なデータスナップショットを反映します。 |
LOADING_NCI | OFF | 最後のスナップショット以降にデータが変更されていない IMCI は読み取り可能です (COMMITTED と同等)。最後のスナップショット以降にデータが追加、削除、または変更された IMCI は読み取りできません。 |
COMMITTED | N/A | 最新のデータがリアルタイムで読み取り可能です。 |
| その他の状態 | N/A | データを読み取ることはできません。 |
パラメーターの設定
ON に設定した場合
すべての IMCI が COMMITTED 状態に達するまで、すべての IMCI がスナップショット読み取りサービスを提供します。これにより、個々の IMCI が LOADING_NCI または COMMITTED のどちらの状態であっても、複雑なクエリで IMCI のアクセラレーションを利用できます。
リカバリー中のクエリの可用性が、読み取り時のデータの新鮮さよりも重要な場合に、この設定を使用します。
1 つでも IMCI が LOADING_NCI 状態にある場合、ロード中の IMCI だけでなく、すべての IMCI がスナップショット読み取りにフォールバックします。OFF に設定した場合
IMCI はより厳密な読み取り整合性を適用します:
COMMITTED状態の IMCI は、最新の列指向データを使用して読み取りを処理します。LOADING_NCI状態の IMCI は、リアルタイムの読み取りを処理できません。例外:IMCI のデータが最後のスナップショット以降に変更されていない場合、COMMITTEDと同等として扱われ、読み取り可能です。
ワークロードが常に最新のコミット済みデータを読み取る必要があり、一部の IMCI がクエリアクセラレーションのために一時的に利用できなくなることを許容できる場合に、この設定を使用します。
パラメーターの範囲とデフォルト値
imci_enable_read_during_load_nci の範囲とデフォルト値は、PolarDB for MySQL Enterprise Edition クラスターのバージョンによって異なります:
| バージョン範囲 | 範囲 | デフォルト | 変更を適用するには再起動が必要です |
|---|---|---|---|
| V8.0.1.1.29 から V8.0.1.1.36 | グローバル | OFF (一部の既存クラスターでは ON の場合があります) | はい |
| V8.0.1.1.37 以降 | セッションレベル | OFF | いいえ |