Skip to content

Commit 9b524a3

Browse files
committed
Add source memory accounting for enrich source
1 parent 8a37ca9 commit 9b524a3

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

x-pack/plugin/enrich/src/main/java/org/elasticsearch/xpack/enrich/action/EnrichShardMultiSearchAction.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.elasticsearch.cluster.routing.ShardsIterator;
3131
import org.elasticsearch.cluster.service.ClusterService;
3232
import org.elasticsearch.common.Strings;
33+
import org.elasticsearch.common.breaker.CircuitBreaker;
3334
import org.elasticsearch.common.bytes.BytesReference;
3435
import org.elasticsearch.common.io.stream.BytesStreamOutput;
3536
import org.elasticsearch.common.io.stream.NamedWriteableAwareStreamInput;
@@ -221,6 +222,7 @@ protected ShardsIterator shards(ClusterState state, InternalRequest request) {
221222
protected MultiSearchResponse shardOperation(Request request, ShardId shardId) throws IOException {
222223
final IndexService indexService = indicesService.indexService(shardId.getIndex());
223224
final IndexShard indexShard = indicesService.getShardOrNull(shardId);
225+
final CircuitBreaker breaker = indicesService.getCircuitBreakerService().getBreaker(CircuitBreaker.REQUEST);
224226
try (Engine.Searcher searcher = indexShard.acquireSearcher("enrich_msearch")) {
225227
final FieldsVisitor visitor = new FieldsVisitor(true);
226228
/*
@@ -259,8 +261,11 @@ protected MultiSearchResponse shardOperation(Request request, ShardId shardId) t
259261
}
260262
return context.getFieldType(field);
261263
});
262-
final SearchHit hit = new SearchHit(scoreDoc.doc, visitor.id());
263-
hit.sourceRef(filterSource(fetchSourceContext, visitor.source()));
264+
final SearchHit hit = new SearchHit(scoreDoc.doc, visitor.id(), breaker);
265+
BytesReference source = visitor.source();
266+
hit.unfilteredSourceRef(source);
267+
breaker.addEstimateBytesAndMaybeBreak(source.length(), "enrich_msearch");
268+
hit.sourceRef(filterSource(fetchSourceContext, source));
264269
hits[j] = hit;
265270
}
266271
items[i] = new MultiSearchResponse.Item(createSearchResponse(topDocs, hits), null);

0 commit comments

Comments
 (0)