private void registerLifecycleHandler() { indicesService.indicesLifecycle().addListener(new Listener() { @Override public void afterIndexShardStarted(IndexShard indexShard) { if (indexShard.routingEntry().primary()) { IndexChanges indexChanges; synchronized (changes) { indexChanges = changes.get(indexShard.shardId().index().name()); if (indexChanges == null) { indexChanges = new IndexChanges(indexShard.shardId().index().name(), settings.getAsInt(SETTING_HISTORY_SIZE, 100)); changes.put(indexShard.shardId().index().name(), indexChanges); } } indexChanges.addShard(); indexShard.indexingService().addListener(indexChanges); } } }); }
indicesService.indicesLifecycle().addListener(new IndicesLifecycle.Listener() { @Override public void beforeIndexClosed(IndexService indexService) { indicesService.indicesLifecycle().addListener(new IndicesLifecycle.Listener() { @Override public void beforeIndexShardClosed(ShardId shardId, @Nullable IndexShard indexShard) {
@Inject public RecoverySource(Settings settings, TransportService transportService, IndicesService indicesService, RecoverySettings recoverySettings, ClusterService clusterService) { super(settings); this.transportService = transportService; this.indicesService = indicesService; this.clusterService = clusterService; this.indicesService.indicesLifecycle().addListener(new IndicesLifecycle.Listener() { @Override public void beforeIndexShardClosed(ShardId shardId, @Nullable IndexShard indexShard, Settings indexSettings) { if (indexShard != null) { ongoingRecoveries.cancel(indexShard, "shard is closed"); } } }); this.recoverySettings = recoverySettings; transportService.registerRequestHandler(Actions.START_RECOVERY, StartRecoveryRequest.class, ThreadPool.Names.GENERIC, new StartRecoveryTransportRequestHandler()); }
indicesService.indicesLifecycle().addListener(new IndicesLifecycle.Listener() { @Override public void beforeIndexClosed(IndexService indexService) {
@Inject public SyncedFlushService(Settings settings, IndicesService indicesService, ClusterService clusterService, TransportService transportService, IndexNameExpressionResolver indexNameExpressionResolver) { super(settings); this.indicesService = indicesService; this.clusterService = clusterService; this.transportService = transportService; this.indexNameExpressionResolver = indexNameExpressionResolver; transportService.registerRequestHandler(PRE_SYNCED_FLUSH_ACTION_NAME, PreShardSyncedFlushRequest.class, ThreadPool.Names.FLUSH, new PreSyncedFlushTransportHandler()); transportService.registerRequestHandler(SYNCED_FLUSH_ACTION_NAME, ShardSyncedFlushRequest.class, ThreadPool.Names.FLUSH, new SyncedFlushTransportHandler()); transportService.registerRequestHandler(IN_FLIGHT_OPS_ACTION_NAME, InFlightOpsRequest.class, ThreadPool.Names.SAME, new InFlightOpCountTransportHandler()); indicesService.indicesLifecycle().addListener(new IndicesLifecycle.Listener() { @Override public void onShardInactive(final IndexShard indexShard) { // we only want to call sync flush once, so only trigger it when we are on a primary if (indexShard.routingEntry().primary()) { attemptSyncedFlush(indexShard.shardId(), new ActionListener<ShardsSyncedFlushResult>() { @Override public void onResponse(ShardsSyncedFlushResult syncedFlushResult) { logger.trace("{} sync flush on inactive shard returned successfully for sync_id: {}", syncedFlushResult.getShardId(), syncedFlushResult.syncId()); } @Override public void onFailure(Throwable e) { logger.debug("{} sync flush on inactive shard failed", e, indexShard.shardId()); } }); } } }); }
this.clusterService = clusterService; this.indicesService = indicesService; indicesService.indicesLifecycle().addListener(new IndicesLifecycle.Listener() { @Override public void afterIndexClosed(Index index, Settings indexSettings) {