Es ist sehr schwierig, ohne zu wissen, Ihre solr Version zu beantworten.
Aus meiner Erfahrung kopiert Solr Index-Dateien, die anders ist (neuer als Zeitstempel). Wenn Ihre Indizes jedoch zusammengeführt werden, wird die vollständige Kopie ausgelöst.
Hier einige relevante Tickets
https://issues.apache.org/jira/browse/SOLR-6640
** Update ** 2017.11.27
ist dies ein relevanter Teil in 5x Zweig,
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();
}
Also, Sie haben mehr als 3 0 ungenutzte Indexdateien und dies wird die Warnmeldung & vollständige Kopie auslösen. Ich würde versuchen, Indizes aus dem Master zu optimieren oder zusammenführen und sehen, ob fullCopy repliziert wird.
Slave behält nur die Kopie der Master-Indizes, nicht von selbst aufzuräumen. Es ist seltsam, aber Ihr Master behält immer noch nicht verwendete Indizes. Wenn Sie testen können, sichern Sie Ihren Index und versuchen Sie, den Kern zu "optimieren". und sehen Sie, ob Sie dieses Problem in Ihrem Slave replizieren können. –