Skip to content

Commit

Permalink
Internal: Log when upgrade starts and stops
Browse files Browse the repository at this point in the history
  • Loading branch information
rjernst committed Jan 12, 2015
1 parent 4f938ad commit c29c18f
Showing 1 changed file with 9 additions and 5 deletions.
Expand Up @@ -918,7 +918,7 @@ private void pruneDeletedTombstones() {
}

// TODO: can we please remove this method?!
private void waitForMerges(boolean flushAfter) {
private void waitForMerges(boolean flushAfter, boolean upgrade) {
try {
Method method = IndexWriter.class.getDeclaredMethod("waitForMerges");
method.setAccessible(true);
Expand All @@ -929,6 +929,9 @@ private void waitForMerges(boolean flushAfter) {
if (flushAfter) {
flush(FlushType.COMMIT_TRANSLOG, true, true);
}
if (upgrade) {
logger.info("Finished upgrade of " + shardId);
}
}

@Override
Expand All @@ -937,7 +940,7 @@ public void forceMerge(boolean flush, boolean waitForMerge) {
}

@Override
public void forceMerge(boolean flush, boolean waitForMerge, int maxNumSegments, boolean onlyExpungeDeletes, boolean upgrade) throws EngineException {
public void forceMerge(final boolean flush, boolean waitForMerge, int maxNumSegments, boolean onlyExpungeDeletes, final boolean upgrade) throws EngineException {
if (optimizeMutex.compareAndSet(false, true)) {
try (InternalLock _ = readLock.acquire()) {
final IndexWriter writer = currentIndexWriter();
Expand All @@ -952,6 +955,7 @@ public void forceMerge(boolean flush, boolean waitForMerge, int maxNumSegments,
MergePolicy mp = writer.getConfig().getMergePolicy();
assert mp instanceof ElasticsearchMergePolicy : "MergePolicy is " + mp.getClass().getName();
if (upgrade) {
logger.info("Starting upgrade of " + shardId);
((ElasticsearchMergePolicy) mp).setUpgradeInProgress(true);
}

Expand All @@ -972,8 +976,8 @@ public void forceMerge(boolean flush, boolean waitForMerge, int maxNumSegments,

// wait for the merges outside of the read lock
if (waitForMerge) {
waitForMerges(flush);
} else if (flush) {
waitForMerges(flush, upgrade);
} else if (flush || upgrade) {
// we only need to monitor merges for async calls if we are going to flush
engineConfig.getThreadPool().executor(ThreadPool.Names.OPTIMIZE).execute(new AbstractRunnable() {
@Override
Expand All @@ -983,7 +987,7 @@ public void onFailure(Throwable t) {

@Override
protected void doRun() throws Exception {
waitForMerges(true);
waitForMerges(flush, upgrade);
}
});
}
Expand Down

0 comments on commit c29c18f

Please sign in to comment.