Db2 Text Search 索引付けスレッド

文書を解析および索引付けするために、複数の索引付けスレッドが並行して処理を行うことができます。 こうすると、通常はテキスト検索索引の更新のための合計経過時間が削減されます。

索引付けスレッドは、キューから文書を取り出し、索引付けプロセスを管理します。 その際、索引前処理スレッドを使用することにより、索引付け用に文書の内容が準備され、その結果がテキスト索引コレクションに書き込まれます。

索引前処理スレッドは、テキストを抽出し、言語を特定し、文書のトークン化および分析を行います。

通常は、索引付けスレッドの数と前処理スレッドの数は、等しくなるように構成されます。 ただし、例えば、大きい文書を処理するようなシナリオでは、前処理スレッドの数を増やすと、パフォーマンス上の利点が得られます。

索引付けスレッドの使用法

複数の索引付けスレッドが同じコレクションで処理する場合、スレッド間で処理を同期するのに必要な調整が生じて、効果が削減されます。 また、単一スレッド化された索引付けスレッドは、解析する間には効率よく処理しますが、マージやディスクへの書き込みの際には、パフォーマンスが低化する可能性があります。 例えば、4 つの異なるテキスト索引に対して 4 つの索引付けスレッドで処理する方が、 1 つのテキスト索引に対して 4 つの索引付けスレッドで処理するよりもスループットは向上します。

索引付けスレッドの数

索引付けスレッドの数は 2 つ以上で、かつ使用可能な CPU の数を超えないようにする必要があります。 スレッドの共有を防止するには、並列して行う索引更新の最大数が、索引付けスレッドの数を超えないようにする必要があります。 索引付けスレッドの数が多すぎたり、並行する索引更新の数が多すぎたりすると、プロセス・コンテキスト・スイッチのメモリーの使用量のために、システム全体のパフォーマンスが低化します。

例えば、頻繁に更新されるテキスト索引が 40 個あり、システムに CPU が 8 個ある場合、索引付けスレッドの数を 8 個より多くしてはなりません。 また、テキスト索引の更新スケジュールをずらして、索引スレッドの競合を最小にします。

索引付けスレッド数に対するデフォルトの設定値は 4 です。 これと同じデフォルト設定値が、索引前処理スレッドにも適用されます。

索引付けスレッド数を構成するには、次のコマンドを発行します。
configTool configureParams -configPath <full-path-to-configuration-folder> 
-numberOfIndexerThreads <value>
ここで、 <value> はスレッドの数、 <full-path-to-configuration-folde> はr Db2config.xml ファイルへのフルパスです。
前処理スレッド数を構成するには、次のコマンドを発行します。
configTool configureParams -configPath <full-path-to-configuration-folder> 
-numberOfPreprocessingThreads <value>
ここで、 <value> はスレッドの数、 <full-path-to-configuration-folde> はr Db2config.xml ファイルへのフルパスです。