有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaSolr4.0保留对已删除文件的引用

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

  <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中的某些bug有关吗

我已经看过了,但什么也没找到。升级在当前的结构中不是那么容易,我希望这只是一个配置错误


共 (1) 个答案

  1. # 1 楼答案

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