[Java] Apache Solr: Slave реплицирует 10 раз каждый раз при опросе (чрезмерные коммиты?)


Answers

Question

Мы используем Apache Solr (3.1.0) для индексации множества статей, написанных для нескольких сайтов. У нас есть настройка ведущий / ведомый (репликация конфигурации внизу), где сервер 1 индексирует статьи, а сервер 2 реплицирует индекс. Ведомый должен опросить мастер каждые 60 секунд, но вместо этого мы можем видеть от 10 до 75 последовательных /replication вызовов почти каждый раз.

Каждое ядро ​​Solr ( ${solr.core.name} в подчиненной конфигурации) представляет собой другой сайт. Звонки /replication я вижу, больше всего привязаны к самому большому сайту. Один из ядер получил только 1 вызов в минуту, и я смог воспроизвести его там после вызова update?commit=true несколько раз, поэтому это заставляет меня думать, что это связано с количеством совершений, которые выполняет мастер.

Поэтому мой вопрос заключается в том, как я могу приостановить работу радара Solr от повторения индекса десятками раз и заставить его реплицировать только один раз в минуту? Я пробовал играть с параметром commitReserveDuration в основной конфигурации, но я не вижу никакой разницы.

главная репликация конфигурации:

 <requestHandler name="/replication" class="solr.ReplicationHandler" >
   <lst name="master">
     <str name="replicateAfter">commit</str>
     <str name="replicateAfter">startup</str>
   </lst>
 </requestHandler>

Конфигурация подчиненной репликации:

 <requestHandler name="/replication" class="solr.ReplicationHandler" >
   <lst name="slave">
     <str name="masterUrl">http://${solr.master.server}/search/${solr.core.name}/replication</str>
     <str name="pollInterval">00:00:60</str>
   </lst>
 </requestHandler>