1

データベースから抽出したデータをフィードする 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 プロセスが、削除されたファイルへの参照を保持していることです。alsofが完了した場合、私は見ることができます:

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

マージ操作用のインデックスの現在のサイズの 2 倍の空き領域をボリュームに用意する必要があります。削除されたファイルへの参照番号は時間の経過とともに増加しますか? (ulimit を増やすだけでなく、後は gc に任せる場合)、それ以外の場合は、netstatレプリカ ノードへの "CLOSE_WAIT" 接続を確認します。

于 2013-05-28T11:10:52.147 に答える