1

我们已经配置了一个 Solr 服务器,我们提供从数据库中提取的数据,并将其配置为主服务器。这个master使用复制机制向其他一些slave提供数据,配置如下:

  <requestHandler name="/replication" class="solr.ReplicationHandler" >
      <lst name="master">
          <str name="replicateAfter">startup</str>
          <str name="replicateAfter">commit</str>
          <str name="commitReserveDuration">00:00:10</str>
      </lst>
      <str name="maxNumberOfBackups">1</str>
  </requestHandler>

奇怪的是,运行这个 solr 实例的 java 进程持有对已删除文件的引用。如果lsof完成,我可以看到:

java      17564 solr_master   44r      REG              253,2 4229809586     705005 /var/solr_master/data/index/_aegu.fdt (deleted)
java      17564 solr_master   45r      REG              253,2 4229809586     705005 /var/solr_master/data/index/_aegu.fdt (deleted)
java      17564 solr_master   49r      REG              253,2   17686596     705138 /var/solr_master/data/index/_ahjh.fdt (deleted)
java      17564 solr_master   51r      REG              253,2 4229809586     705005 /var/solr_master/data/index/_aegu.fdt (deleted)

索引不断更新,从属服务器每 20 秒检查一次复制。

提交没有显式完成,它使用如下配置的自动提交:

  <autoCommit> 
    <maxTime>15000</maxTime> 
    <openSearcher>false</openSearcher> 
  </autoCommit>

有没有人看到我做错了什么,或者有人面临同样的问题,在这种情况下,解决方案是什么?

我正在使用LUCENE_40,这可能与 Lucene 中的某些错误有关吗?

我已经查看了 Solr 错误列表,但我没有找到任何东西。在当前的结构中升级并不是那么容易,我希望这只是一个错误的配置。

4

1 回答 1

1

您必须在卷上提供两倍于合并操作的索引当前大小的可用空间。已删除文件的参考编号是否会随着时间的推移而增加?(如果不只是增加 ulimit 并让 gc 完成其余的工作),否则请检查与netstat副本节点的“CLOSE_WAIT”连接。

于 2013-05-28T11:10:52.147 回答