/** * Resolves the given shards directory against this NodePath */ public Path resolve(ShardId shardId) { return resolve(shardId.index()).resolve(Integer.toString(shardId.id())); }
/** * Adds a pending delete for the given index shard. */ public void addPendingDelete(ShardId shardId, Settings settings) { if (shardId == null) { throw new IllegalArgumentException("shardId must not be null"); } if (settings == null) { throw new IllegalArgumentException("settings must not be null"); } PendingDelete pendingDelete = new PendingDelete(shardId, settings); addPendingDelete(shardId.index(), pendingDelete); }
private static String buildMessage(ShardId shardId, String message) { if (shardId == null) { return message; } return "[" + shardId.index().name() + "][" + shardId.id() + "] " + message; }
/** * Resolve the custom path for a index's shard. * Uses the {@code IndexMetaData.SETTING_DATA_PATH} setting to determine * the root path for the index. * * @param indexSettings settings for the index * @param shardId shard to resolve the path to */ public Path resolveCustomLocation(Settings indexSettings, final ShardId shardId) { return resolveCustomLocation(indexSettings, shardId.index().name()).resolve(Integer.toString(shardId.id())); }
public static ESLogger getLogger(Class clazz, Settings settings, ShardId shardId, String... prefixes) { return getLogger(clazz, settings, shardId.index(), asArrayList(Integer.toString(shardId.id()), prefixes).toArray(new String[0])); }
/** Just like {@link #getLogger(Class, org.elasticsearch.common.settings.Settings,ShardId,String...)} but String loggerName instead of Class. */ public static ESLogger getLogger(String loggerName, Settings settings, ShardId shardId, String... prefixes) { return getLogger(loggerName, settings, asArrayList(shardId.index().name(), Integer.toString(shardId.id()), prefixes).toArray(new String[0])); }
public void beforeIndexShardPostRecovery(IndexShard indexShard) { if (hasPercolatorType(indexShard)) { // percolator index has started, fetch what we can from it and initialize the indices // we have //TODO lower to debug level logger.info("loading percolator queries for index [{}] and shard[{}]...", shardId.index(), shardId.id()); loadQueries(indexShard); logger.info("done loading percolator queries for index [{}] and shard[{}], nr of queries: [{}]", shardId.index(), shardId.id(), percolateQueries.size()); } }
/** * Add a new shard to this node * @param shard Shard to crate on this Node */ void add(ShardRouting shard) { // TODO use Set with ShardIds for faster lookup. for (ShardRouting shardRouting : shards) { if (shardRouting.isSameShard(shard)) { throw new IllegalStateException("Trying to add a shard [" + shard.shardId().index().name() + "][" + shard.shardId().id() + "] to a node [" + nodeId + "] where it already exists"); } } shards.add(shard); }
public static void writeTo(IndexShardRoutingTable indexShard, StreamOutput out) throws IOException { out.writeString(indexShard.shardId().index().name()); writeToThin(indexShard, out); }
@Override public void toXContent(AllocateAllocationCommand command, XContentBuilder builder, ToXContent.Params params, String objectName) throws IOException { if (objectName == null) { builder.startObject(); } else { builder.startObject(objectName); } builder.field("index", command.shardId().index().name()); builder.field("shard", command.shardId().id()); builder.field("node", command.node()); builder.field("allow_primary", command.allowPrimary()); builder.endObject(); } }
@Override public void toXContent(CancelAllocationCommand command, XContentBuilder builder, ToXContent.Params params, String objectName) throws IOException { if (objectName == null) { builder.startObject(); } else { builder.startObject(objectName); } builder.field("index", command.shardId().index().name()); builder.field("shard", command.shardId().id()); builder.field("node", command.node()); builder.field("allow_primary", command.allowPrimary()); builder.endObject(); } }
public RecoverySourceHandler(final IndexShard shard, final StartRecoveryRequest request, final RecoverySettings recoverySettings, final TransportService transportService, final ESLogger logger) { this.shard = shard; this.request = request; this.recoverySettings = recoverySettings; this.logger = logger; this.transportService = transportService; this.indexName = this.request.shardId().index().name(); this.shardId = this.request.shardId().id(); this.response = new RecoveryResponse(); }
protected Releasable getIndexShardOperationsCounter(ShardId shardId) { IndexService indexService = indicesService.indexServiceSafe(shardId.index().getName()); IndexShard indexShard = indexService.shardSafe(shardId.id()); return new IndexShardReference(indexShard); }
public ShardSuggestResponse suggest(ShardSuggestRequest shardSuggestRequest) { List<String> suggestions; try { suggestions = Lists.newArrayList(getSuggestions(shardSuggestRequest)); } catch (IOException e) { throw new ElasticsearchException("Error getting suggestions", e); } return new ShardSuggestResponse(shardId.index().name(), shardId.id(), suggestions); }
private void sendIndexShardStats() { for (IndexShard indexShard : indexShards) { String type = buildMetricName("indexes.") + indexShard.shardId().index().name() + ".id." + indexShard.shardId().id(); sendIndexShardStats(type, indexShard); } }
private void freeAllContextForIndex(Index index) { assert index != null; for (SearchContext ctx : activeContexts.values()) { if (index.equals(ctx.indexShard().shardId().index())) { freeContext(ctx.id()); } } }
@Override protected MergeThread getMergeThread(IndexWriter writer, MergePolicy.OneMerge merge) throws IOException { MergeThread thread = super.getMergeThread(writer, merge); thread.setName(EsExecutors.threadName(indexSettings, "[" + shardId.index().name() + "][" + shardId.id() + "]: " + thread.getName())); return thread; }
@Override public void beforeIndexShardClosed(ShardId shardId, @Nullable IndexShard indexShard) { IndexService indexService = indicesService.indexService(shardId.index().name()); if (indexService != null) { ShardSuggestService suggestShardService = indexService.shardInjectorSafe(shardId.id()).getInstance(ShardSuggestService.class); suggestShardService.shutDown(); } } });
private IndexShard getShard(ShardActiveRequest request) { ClusterName thisClusterName = clusterService.state().getClusterName(); if (!thisClusterName.equals(request.clusterName)) { logger.trace("shard exists request meant for cluster[{}], but this is cluster[{}], ignoring request", request.clusterName, thisClusterName); return null; } ShardId shardId = request.shardId; IndexService indexService = indicesService.indexService(shardId.index().getName()); if (indexService != null && indexService.indexUUID().equals(request.indexUUID)) { return indexService.shard(shardId.id()); } return null; } }