すべてのプロダクト
Search
ドキュメントセンター

PolarDB:LOADING_NCI状態とその影響

最終更新日:Nov 05, 2024

このトピックでは、列ストアノードのメモリ内列インデックス (IMCI) のLOADING_NCI状態と、列指向データの読み取り整合性に対する影響について説明します。

列ストアノードを再起動した後、INFORMATION_SCHEMA.IMCI_INDEXESテーブルを照会すると、一部のIMCIが一定期間LOADING_NCI状態にあることがわかります。 LOADING_NCI状態は、IMCIと行指向データ間のマッピングが再構築中であることを示します。 マッピングは、ハイブリッドトランザクション /分析処理 (HTAP) サービスのリアルタイムの高並行性データ更新機能を保証します。 LOADING_NCI状態の期間は、列指向データの量とクラスターの仕様に基づいて、数秒から数時間まで変化します。

トランザクションの更新への影響

LOADING_NCI状態のIMCIのデータは、リアルタイムで更新できます。 ただし、データの更新はIMCIにのみキャッシュされ、IMCIと行指向のデータ間のマッピングが確立されていないため、更新されたデータをリアルタイムで照会することはできません。

読み取りの一貫性への影響

LOADING_NCI状態のIMCIのデータは、引き続き読み取ることができます。 IMCIは、次の表に示すように、パラメーター設定に基づいてさまざまな一貫性レベルで読み取りサービスを提供します。

インデックスの状態

パラメーター設定

可読性 (読み取り一貫性)

LOADING_NCI

imci_enable_read_during_load_nci=ON

データを読み取ることができ、データのスナップショットを読み取ることができます。 IMCIがLOADING_NCI状態の場合、すべてのIMCIがスナップショット読み取りサービスを提供します。

imci_enable_read_during_load_nci=OFF

最後のスナップショット以降にデータが追加、削除、または変更されたIMCIの場合、データを読み取ることはできません。 最後のスナップショット以降にデータが追加、削除、または変更されていないIMCIの場合、データを読み取ることができます。

コミット

非該当

更新されたデータはリアルタイムで読み取ることができます。

その他の状態

非該当

データを読み取ることはできません。

パラメーター設定

  • デフォルトでは、imci_enable_read_during_load_nciパラメーターをONに設定した場合、すべてのIMCIがCOMMITTED状態になる前に、IMCIはスナップショット読み取りサービスを提供します。 読み取られるデータのバージョンは、列ストアノードが失敗する前の最後の完全なスナップショットです。 この場合、IMCIを使用して、IMCIがLOADING_NCI状態であるかCOMMITTED状態であるかに関係なく、複雑なクエリを高速化できます。

    説明

    imci_enable_read_during_load_nciパラメーターをONに設定し、1つのIMCIがLOADING_NCI状態の場合、すべてのIMCIがスナップショット読み取りサービスを提供します。

  • imci_enable_read_during_load_nciパラメーターOFFを設定すると、IMCIはより厳格な整合性レベルで読み取りサービスを提供します。

    • COMMITTED状態のIMCIでは、列指向データを使用して複雑なクエリを高速化し、最新の列指向データを読み取ることができます。

    • IMCIがLOADING_NCI状態の場合、リアルタイムデータを読み取ることはできません。 したがって、COMMITTED状態に相当する、最後のスナップショット以降にデータが追加、削除、または変更されていないIMCIについては、データを読み取ることができます。 業務要件に基づいて、列ストアノードでLOADING_NCI状態のIMCIのスナップショット読み取りサービスを有効または無効にできます。

パラメータスコープとデフォルト値

  • PolarDB for MySQL Enterprise EditionクラスターのバージョンがV8.0.1.29 ~ V8.0.1.1.36の場合、imci_enable_read_during_load_nciパラメーターはグローバルに有効です。 デフォルトでは、パラメーターはOFFに設定されています。 ただし、既存のクラスタによっては、パラメータのデフォルト値がONになる場合があります。 クラスターのこのパラメーターの値を変更した後、変更を有効にするには、クラスターを再起動する必要があります。

  • PolarDB for MySQL Enterprise EditionクラスターのバージョンがV8.0.1.1.37以降の場合、imci_enable_read_during_load_nciパラメーターはセッションレベルで有効です。 デフォルトでは、パラメーターはOFFに設定されています。