add internal event when an index shard is started
This commit is contained in:
parent
5e27e3fca4
commit
f8b1a8e38b
|
@ -48,6 +48,8 @@ import org.elasticsearch.index.shard.*;
|
|||
import org.elasticsearch.index.shard.recovery.RecoveryStatus;
|
||||
import org.elasticsearch.index.store.Store;
|
||||
import org.elasticsearch.index.translog.Translog;
|
||||
import org.elasticsearch.indices.IndicesLifecycle;
|
||||
import org.elasticsearch.indices.InternalIndicesLifecycle;
|
||||
import org.elasticsearch.threadpool.ThreadPool;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
@ -72,6 +74,8 @@ public class InternalIndexShard extends AbstractIndexShardComponent implements I
|
|||
|
||||
private final IndexCache indexCache;
|
||||
|
||||
private final InternalIndicesLifecycle indicesLifecycle;
|
||||
|
||||
private final Store store;
|
||||
|
||||
private final Engine engine;
|
||||
|
@ -91,9 +95,10 @@ public class InternalIndexShard extends AbstractIndexShardComponent implements I
|
|||
|
||||
private RecoveryStatus peerRecoveryStatus;
|
||||
|
||||
@Inject public InternalIndexShard(ShardId shardId, @IndexSettings Settings indexSettings, Store store, Engine engine, Translog translog,
|
||||
@Inject public InternalIndexShard(ShardId shardId, @IndexSettings Settings indexSettings, IndicesLifecycle indicesLifecycle, Store store, Engine engine, Translog translog,
|
||||
ThreadPool threadPool, MapperService mapperService, IndexQueryParserService queryParserService, IndexCache indexCache) {
|
||||
super(shardId, indexSettings);
|
||||
this.indicesLifecycle = (InternalIndicesLifecycle) indicesLifecycle;
|
||||
this.store = store;
|
||||
this.engine = engine;
|
||||
this.translog = translog;
|
||||
|
@ -191,6 +196,7 @@ public class InternalIndexShard extends AbstractIndexShardComponent implements I
|
|||
logger.debug("state: [{}]->[{}], reason [{}]", state, IndexShardState.STARTED, reason);
|
||||
state = IndexShardState.STARTED;
|
||||
}
|
||||
indicesLifecycle.afterIndexShardStarted(this);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
@ -435,6 +441,7 @@ public class InternalIndexShard extends AbstractIndexShardComponent implements I
|
|||
|
||||
// clear unreferenced files
|
||||
translog.clearUnreferenced();
|
||||
indicesLifecycle.afterIndexShardStarted(this);
|
||||
}
|
||||
|
||||
public void performRecoveryOperation(Translog.Operation operation) throws ElasticSearchException {
|
||||
|
|
|
@ -77,6 +77,13 @@ public interface IndicesLifecycle {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* Called after the index shard has been started.
|
||||
*/
|
||||
public void afterIndexShardStarted(IndexShard indexShard) {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Called before the index get closed.
|
||||
*
|
||||
|
|
|
@ -73,6 +73,12 @@ public class InternalIndicesLifecycle extends AbstractComponent implements Indic
|
|||
}
|
||||
}
|
||||
|
||||
public void afterIndexShardStarted(IndexShard indexShard) {
|
||||
for (Listener listener : listeners) {
|
||||
listener.afterIndexShardStarted(indexShard);
|
||||
}
|
||||
}
|
||||
|
||||
public void beforeIndexClosed(IndexService indexService, boolean delete) {
|
||||
for (Listener listener : listeners) {
|
||||
listener.beforeIndexClosed(indexService, delete);
|
||||
|
|
Loading…
Reference in New Issue