大規模行読み取りの並列処理
パフォーマンスを向上させるため、行の大量取得を並列処理するようにDSE Searchを構成します。
パフォーマンスを向上させるため、行の大量取得を並列処理するようにDSE Searchを構成できます。検索インデックスでqueryResponseWriterを以下のように構成します。
<queryResponseWriter name="javabin" class="solr.BinaryResponseWriter"> <str name="resolverFactory">com.datastax.bdp.search.solr.response.ParallelRowResolver$Factory</str> </queryResponseWriter>
デフォルトでは、並列行リゾルバーは最多でx個のスレッドを使用して並列読み取りを実行します。ここで、xはCPU数です。各スレッドは、要求行の総数をCPU数で割った値に等しい行数のバッチをシーケンシャルに読み取っていきます。
読み取られる行数 = 要求行の総数/CPU数
バッチ・サイズは、要求に従って変更できます。そのためには、cassandra.readBatchSize HTTP要求パラメーターを指定します。バッチが小さければ小さいほど、より多くの並列処理を使用します。大きければ大きいほど、使用する並列処理は少なくなります。