2017-11-14 10 views
7

हटा सकता है जब कोई दास इंडेक्स को प्रतिलिपि बनाता है तो यह नाम प्रारूप के साथ index.timestamp अगली बार जब यह प्रतिलिपि बनाता है तो यह सफाई करने की कोशिश करता है और एक नया फ़ोल्डर बनाता है नए समय स्टाम्प साथ लेकिन मेरे मामले में अपने नहीं हो रहा और हर मैं देख यह चेतावनी और गुलाम एक fullCopyएसओएलआर दास पूर्ण प्रतिलिपि कर रहा है क्योंकि यह अप्रयुक्त इंडेक्स डीआईआर

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

को गति प्रदान किसी को भी क्यों गुलाम अप्रयुक्त अनुक्रमणिका फ़ाइलों को साफ करने में सक्षम नहीं है सका।

धन्यवाद

+0

दास केवल मास्टर इंडेक्स की प्रति ही रखेगा, स्वयं को साफ नहीं करेगा। यह अजीब बात है, हालांकि, आपका मास्टर अभी भी अप्रयुक्त इंडेक्स रखता है। यदि आप परीक्षण कर सकते हैं, तो अपनी अनुक्रमणिका का बैकअप लें और कोर को "ऑप्टिमाइज़" करने का प्रयास करें। और देखें कि क्या आप इस मुद्दे को अपने दास में दोहरा सकते हैं। –

उत्तर

3

अपने solr संस्करण को जानने के बिना जवाब देना बहुत मुश्किल है।

मेरे अनुभव से, सोलर प्रतियां इंडेक्स फाइलें अलग होती हैं (नया तब टाइमस्टैम्प)। हालांकि, अगर आपकी अनुक्रमणिका विलय हो जाती है, तो यह पूरी प्रतिलिपि ट्रिगर करेगा।

यहाँ कुछ संबंधित टिकट

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

** अद्यतन 2017/11/27 **

इस 5x शाखा में एक प्रासंगिक हिस्सा है,

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(); 
} 
है

तो, आपके पास 3 से अधिक हैं 0 अप्रयुक्त इंडेक्स फाइलें और यह चेतावनी संदेश & पूर्ण प्रतिलिपि को ट्रिगर करेगा। मैं मास्टर से इंडेक्स को अनुकूलित या मर्ज करने का प्रयास करता हूं और देखता हूं कि पूर्ण कॉपी को दोहराया गया है या नहीं।

+0

क्या यह पारंपरिक मास्टर/गुलाम या सोलरक्लाउड है? मैंने सोचा कि यह मास्टर/गुलाम था लेकिन आपका टैग मुझे भ्रमित करता है। –

+0

एसओएलआर संस्करण का उपयोग 5.2.1 है और इसके पारंपरिक मास्टर/स्लेव सेटअप है। अधिकांश समय में मैं लॉग इन चेतावनी को देखता हूं * अप्रयुक्त इंडेक्स डीआईआर को साफ नहीं कर सकता और इस प्रकार पूर्ण प्रति प्रतिकृति को ट्रिगर कर सकता है * इस –

+0

से बचने के तरीके पर कोई विचार जानकारीपूर्ण था लेकिन मुझे इसके बारे में नहीं लगता समस्या का सामना करना पड़ रहा है। –

संबंधित मुद्दे