mirror of https://github.com/apache/lucene.git
SOLR-1018 -- Slave is unable to replicate when server acts as repeater (as both master and slave)
git-svn-id: https://svn.apache.org/repos/asf/lucene/solr/trunk@743757 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
1371f5b70b
commit
5cfb336f5c
|
@ -261,6 +261,9 @@ Bug Fixes
|
|||
31. SOLR-1015: Incomplete information in replication admin page and http command response when server
|
||||
is both master and slave i.e. when server is a repeater (Akshay Ukey via shalin)
|
||||
|
||||
32. SOLR-1018: Slave is unable to replicate when server acts as repeater (as both master and slave)
|
||||
(Akshay Ukey, Noble Paul via shalin)
|
||||
|
||||
|
||||
Other Changes
|
||||
----------------------
|
||||
|
|
|
@ -83,7 +83,7 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
|
|||
private boolean replicateOnCommit = false;
|
||||
|
||||
private boolean replicateOnStart = false;
|
||||
|
||||
|
||||
private int numTimesReplicated = 0;
|
||||
|
||||
private final Map<String, FileInfo> confFileInfoCache = new HashMap<String, FileInfo>();
|
||||
|
@ -520,7 +520,7 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
|
|||
master.add("replicatableIndexVersion", commit.getVersion());
|
||||
master.add("replicatableGeneration", commit.getGeneration());
|
||||
}
|
||||
|
||||
|
||||
SnapPuller snapPuller = tempSnapPuller;
|
||||
if (snapPuller != null) {
|
||||
try {
|
||||
|
@ -670,6 +670,16 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
|
|||
return details;
|
||||
}
|
||||
|
||||
void refreshCommitpoint(){
|
||||
IndexCommit commitPoint = core.getDeletionPolicy().getLatestCommit();
|
||||
if(replicateOnCommit && !commitPoint.isOptimized()){
|
||||
indexCommitPoint = commitPoint;
|
||||
}
|
||||
if(replicateOnOptimize && commitPoint.isOptimized()){
|
||||
indexCommitPoint = commitPoint;
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public void inform(SolrCore core) {
|
||||
this.core = core;
|
||||
|
@ -717,7 +727,9 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
|
|||
LOG.warn("The update handler being used is not an instance or sub-class of DirectUpdateHandler2. " +
|
||||
"Replicate on Startup cannot work.");
|
||||
}
|
||||
indexCommitPoint = s.get().getReader().getIndexCommit();
|
||||
if(s.get().getReader().getIndexCommit() != null)
|
||||
if(s.get().getReader().getIndexCommit().getGeneration() != 1L)
|
||||
indexCommitPoint = s.get().getReader().getIndexCommit();
|
||||
} catch (IOException e) {
|
||||
LOG.warn("Unable to get IndexCommit on startup", e);
|
||||
} finally {
|
||||
|
|
|
@ -354,6 +354,7 @@ public class SnapPuller {
|
|||
LOG.info("Force open index writer to make sure older index files get deleted");
|
||||
DirectUpdateHandler2 handler = (DirectUpdateHandler2) solrCore.getUpdateHandler();
|
||||
handler.forceOpenWriter();
|
||||
replicationHandler.refreshCommitpoint();
|
||||
} else {
|
||||
LOG.warn("The update handler is not an instance or sub-class of DirectUpdateHandler2. " +
|
||||
"ReplicationHandler may not be able to cleanup un-used index files.");
|
||||
|
|
Loading…
Reference in New Issue