2017-11-14 146 views
7

Bir köle, dizini çoğaltırsa, çoğaltıldığında yeni bir klasör oluşturmayı denediğinde yeniden adlandırma yapıldığında index.timestamp ad dizinine sahip bir dizin dizini oluşturur. onun olmuyor ve her gördüğüm yeni zaman damgasıyla ama benim durumumda bu uyarı ve köle bir fullCopySOLR köle çalışıyor Kopyalamadığı için resim yapamazsınız Kullanılmadı Dizin sil

Unable to cleanup unused lucene index files so we must do a full copy instead

tetiklemek köle kullanılmayan dizin dosyalarını temizlemek mümkün değildir neden kimse yapamadığım.

sayesinde

+0

slave yalnızca ana dizinlerin kopyasını tutacaktır, kendi kendine temizlemeyecektir. Yine de garip, üstadı kullanılmayan dizinleri hala koruyor. Test edebilirseniz, dizininizi yedekleyin ve çekirdeği optimize etmeyi deneyin. ve bu sorunu kölenizde çoğaltabileceğinizi görün. –

cevap

3

sizin Solr sürümünü bilmeden cevap vermek çok zordur.

Benim durumumdan, farklı kopyalar dizin dosyaları (daha yeni bir zaman damgası). Ancak, dizinleriniz birleştirilirse, tam kopyayı tetikler. İşte

bazı ilgili biletler

https://issues.apache.org/jira/browse/SOLR-6640

** güncelleme 2017/11/27 **

bu 5x dalında alakalı bir parçasıdır,

https://github.com/apache/lucene-solr/blob/branch_5x/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java#L398-L418

try { 
    IndexWriter indexWriter = writer.get(); 
    int c = 0; 
    indexWriter.deleteUnusedFiles(); 
    while (hasUnusedFiles(indexDir, commit)) { 
     indexWriter.deleteUnusedFiles(); 
     LOG.info("Sleeping for 1000ms to wait for unused lucene index files to be delete-able"); 
     Thread.sleep(1000); 
     c++; 
     if (c >= 30) { 
      LOG.warn("IndexFetcher unable to cleanup unused lucene index files so we must do a full copy instead"); 
      isFullCopyNeeded = true; 
      break; 
     } 
    } 
    if (c > 0) { 
     LOG.info("IndexFetcher slept for " + (c * 1000) + "ms for unused lucene index files to be delete-able"); 
    } 
} finally { 
    writer.decref(); 
} 
olduğunu

Yani, 3'ten fazla var 0 kullanılmayan dizin dosyaları ve bu & tam kopyasını uyarı mesajını tetikleyecektir. Master'dan dizinleri optimize etmeyi veya birleştirmeyi ve fullCopy'nin çoğaltılıp çoğaltılmadığını görmeyi deneyeceğim.

+0

Geleneksel master/slave veya solrcloud mu? Usta/köle olduğunu sanıyordum ama etiketin beni şaşırtıyor. –

+0

SOLR Sürüm kullanımı 5.2.1 ve geleneksel Master/Slave ayarıdır. Çoğu zaman günlüğümde uyarıyı görüyorum * söyleme * kullanılmayan dizin dirisini temizleyemedi ve bu nedenle tam kopyalama çoğalmasını tetikledi * bu –

+0

'dan nasıl sakınacağına dair herhangi bir fikir Paylaşılan bağlantı bilgilendiriciydi ama onunla ilgili olduğunu sanmıyorum karşı karşıya olduğum problem. –