Merge "Add an optional flag to force an online reindex"

This commit is contained in:
Hugo Arès
2016-08-03 13:18:35 +00:00
committed by Gerrit Code Review
3 changed files with 15 additions and 7 deletions

View File

@@ -163,11 +163,11 @@ public class LuceneVersionManager implements LifecycleListener {
markNotReady(cfg, def.getName(), versions.values(), write);
int latest = write.get(0).version;
OnlineReindexer<K, V, I> reindexer = new OnlineReindexer<>(def, latest);
reindexers.put(def.getName(), reindexer);
if (onlineUpgrade && latest != search.version) {
OnlineReindexer<K, V, I> reindexer = new OnlineReindexer<>(def, latest);
synchronized (this) {
if (!reindexers.containsKey(def.getName())) {
reindexers.put(def.getName(), reindexer);
reindexer.start();
}
}
@@ -177,14 +177,15 @@ public class LuceneVersionManager implements LifecycleListener {
/**
* Start the online reindexer if the current index is not already the latest.
*
* @param force start re-index
* @return true if started, otherwise false.
* @throws ReindexerAlreadyRunningException
*/
public synchronized boolean startReindexer(String name)
public synchronized boolean startReindexer(String name, boolean force)
throws ReindexerAlreadyRunningException {
OnlineReindexer<?, ?, ?> reindexer = reindexers.get(name);
validateReindexerNotRunning(reindexer);
if (!isCurrentIndexVersionLatest(name, reindexer)) {
if (force || !isCurrentIndexVersionLatest(name, reindexer)) {
reindexer.start();
return true;
}