HNSW RAC複製
Oracle Real Application Clusters (Oracle RAC)または非RAC環境での索引作成、索引再移入またはインスタンス起動時に、Hierarchical Navigable Small World (HNSW)索引がどのように移入されるかについて説明します。
RAC環境でのHNSW索引の作成
現在、Oracle RAC環境のHNSW索引は、集中モードで作成されます。次の図は、Oracle RAC環境でのHNSW索引作成のワークフローを示しています:
-
HNSW索引を作成するRACインスタンスは、ディスク上にHNSW ROWIDとVIDのマッピング表を作成します。「HNSWベクトル索引のオプティマイザ計画」で説明されているように、この表は、オプティマイザが特定の最適化計画を実行するために必要です。
-
デフォルトでは、最初のHNSWグラフが作成されると、独自のHNSWインメモリー・グラフの作成を同時に開始するように、他のすべてのRACインスタンスに通知されます。この操作は、HNSW複製操作と呼ばれます。複製は、2つのステップで実現されます。プライマリRACインスタンスは、作成したHNSWグラフのディスク・チェックポイントを作成し、他のすべてのセカンダリRACノードはそのディスク・チェックポイントを使用してグラフをロードします。集中モードでHNSW索引を作成すると、すべてのノードが同じグラフ構造を共有できます。
ノート:
ベクトルのメモリーが十分でないインスタンスは、RAC全体のパラレルHNSW索引移入に参加できません。RACノード間でHNSW索引を作成する複製メカニズムに加えて、完全な再移入を使用すると、グラフ・リフレッシュ複製を実行できます。HNSW索引の完全再移入操作がトリガーされる理由およびタイミングの詳細は、HNSW索引のトランザクション・サポートを参照してください。グラフ・リフレッシュ複製プロセスは、索引の作成時に使用したプロセスと同じです。プライマリ・インスタンスがグラフ・リフレッシュを開始し、新しい完全ディスク・チェックポイントを作成します。他のインスタンスは、最新のチェックポイントからグラフをリロードします。
ノート:
Oracle RAC環境ではスナップショットは作成されません。現在、完全な再移入は、グラフ・リフレッシュ複製に使用される唯一の方法です。インスタンス再起動時またはクラスタへの新しいノードの参加時のHNSW索引のリロード
-
最新の完全チェックポイントが存在する場合: インスタンスはチェックポイントから直接HNSWグラフをロードし、高速リカバリを実現します。
-
有効なチェックポイントがない場合: グラフは最初から再作成され、新しいグラフは古いグラフと同一にはなりません。
リロードの動作は、VECTOR_INDEX_NEIGHBOR_GRAPH_RELOADパラメータによって制御されます。インスタンスがクラスタに参加したとき、または再起動時に、VECTOR_INDEX_NEIGHBOR_GRAPH_RELOADインスタンス・パラメータがRESTART (デフォルト設定)に設定されていて、完全チェックポイントが存在し、現在のインスタンスのSCNと比較して古すぎるとはみなされない場合は、起動インスタンスによってそれが使用され、HNSWグラフがメモリー内に作成されます。これら2つの条件が満たされない場合、起動インスタンスは複製メカニズムを使用してメモリー内にHNSWグラフを最初から作成します。インスタンスがクラスタに参加したとき、または再起動時に、VECTOR_INDEX_NEIGHBOR_GRAPH_RELOADインスタンス・パラメータがOFFに設定されている場合、HNSWグラフはリロードされません。
親トピック: インメモリー近傍グラフ・ベクトル索引について

