@Override protected void doExecute(MultiSearchRequest request, ActionListener<MultiSearchResponse> listener) { ClusterState clusterState = clusterService.state(); clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ); int maxConcurrentSearches = request.maxConcurrentSearchRequests(); if (maxConcurrentSearches == MultiSearchRequest.MAX_CONCURRENT_SEARCH_REQUESTS_DEFAULT) { maxConcurrentSearches = defaultMaxConcurrentSearches(availableProcessors, clusterState); } Queue<SearchRequestSlot> searchRequestSlots = new ConcurrentLinkedQueue<>(); for (int i = 0; i < request.requests().size(); i++) { SearchRequest searchRequest = request.requests().get(i); searchRequestSlots.add(new SearchRequestSlot(searchRequest, i)); } int numRequests = request.requests().size(); final AtomicArray<MultiSearchResponse.Item> responses = new AtomicArray<>(numRequests); final AtomicInteger responseCounter = new AtomicInteger(numRequests); int numConcurrentSearches = Math.min(numRequests, maxConcurrentSearches); for (int i = 0; i < numConcurrentSearches; i++) { executeSearch(searchRequestSlots, responses, responseCounter, listener); } }
@Override protected void doExecute(final MultiGetRequest request, final ActionListener<MultiGetResponse> listener) { ClusterState clusterState = clusterService.state(); clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ);
SearchResponse.Clusters clusters) { clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ);
ClusterState clusterState = clusterService.state(); clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ);
@Override protected void doExecute(MultiSearchRequest request, ActionListener<MultiSearchResponse> listener) { ClusterState clusterState = clusterService.state(); clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ); int maxConcurrentSearches = request.maxConcurrentSearchRequests(); if (maxConcurrentSearches == MultiSearchRequest.MAX_CONCURRENT_SEARCH_REQUESTS_DEFAULT) { maxConcurrentSearches = defaultMaxConcurrentSearches(availableProcessors, clusterState); } Queue<SearchRequestSlot> searchRequestSlots = new ConcurrentLinkedQueue<>(); for (int i = 0; i < request.requests().size(); i++) { SearchRequest searchRequest = request.requests().get(i); searchRequestSlots.add(new SearchRequestSlot(searchRequest, i)); } int numRequests = request.requests().size(); final AtomicArray<MultiSearchResponse.Item> responses = new AtomicArray<>(numRequests); final AtomicInteger responseCounter = new AtomicInteger(numRequests); int numConcurrentSearches = Math.min(numRequests, maxConcurrentSearches); for (int i = 0; i < numConcurrentSearches; i++) { executeSearch(searchRequestSlots, responses, responseCounter, listener); } }
@Override protected void doExecute(MultiSearchRequest request, ActionListener<MultiSearchResponse> listener) { ClusterState clusterState = clusterService.state(); clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ); int maxConcurrentSearches = request.maxConcurrentSearchRequests(); if (maxConcurrentSearches == MultiSearchRequest.MAX_CONCURRENT_SEARCH_REQUESTS_DEFAULT) { maxConcurrentSearches = defaultMaxConcurrentSearches(availableProcessors, clusterState); } Queue<SearchRequestSlot> searchRequestSlots = new ConcurrentLinkedQueue<>(); for (int i = 0; i < request.requests().size(); i++) { SearchRequest searchRequest = request.requests().get(i); searchRequestSlots.add(new SearchRequestSlot(searchRequest, i)); } int numRequests = request.requests().size(); final AtomicArray<MultiSearchResponse.Item> responses = new AtomicArray<>(numRequests); final AtomicInteger responseCounter = new AtomicInteger(numRequests); int numConcurrentSearches = Math.min(numRequests, maxConcurrentSearches); for (int i = 0; i < numConcurrentSearches; i++) { executeSearch(searchRequestSlots, responses, responseCounter, listener); } }
@Override protected void doExecute(MultiSearchRequest request, ActionListener<MultiSearchResponse> listener) { ClusterState clusterState = clusterService.state(); clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ); int maxConcurrentSearches = request.maxConcurrentSearchRequests(); if (maxConcurrentSearches == 0) { maxConcurrentSearches = defaultMaxConcurrentSearches(availableProcessors, clusterState); } Queue<SearchRequestSlot> searchRequestSlots = new ConcurrentLinkedQueue<>(); for (int i = 0; i < request.requests().size(); i++) { SearchRequest searchRequest = request.requests().get(i); searchRequestSlots.add(new SearchRequestSlot(searchRequest, i)); } int numRequests = request.requests().size(); final AtomicArray<MultiSearchResponse.Item> responses = new AtomicArray<>(numRequests); final AtomicInteger responseCounter = new AtomicInteger(numRequests); int numConcurrentSearches = Math.min(numRequests, maxConcurrentSearches); for (int i = 0; i < numConcurrentSearches; i++) { executeSearch(searchRequestSlots, responses, responseCounter, listener); } }
private void doExecuteRequest(final MultiSearchRequest request, final ActionListener<MultiSearchResponse> listener, final List<CoordinateSearchMetadata> metadatas) { ClusterState clusterState = clusterService.state(); clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ); final AtomicArray<CoordinateMultiSearchResponse.Item> responses = new AtomicArray<>(request.requests().size()); final AtomicInteger counter = new AtomicInteger(responses.length()); for (int i = 0; i < responses.length(); i++) { final int index = i; SearchRequest searchRequest = new SearchRequest(request.requests().get(i), request); searchAction.execute(searchRequest, new ActionListener<SearchResponse>() { @Override public void onResponse(SearchResponse searchResponse) { responses.set(index, new CoordinateMultiSearchResponse.Item(new CoordinateSearchResponse(searchResponse, metadatas.get(index)), null)); if (counter.decrementAndGet() == 0) { finishHim(); } } @Override public void onFailure(Throwable e) { responses.set(index, new CoordinateMultiSearchResponse.Item(null, ExceptionsHelper.detailedMessage(e))); if (counter.decrementAndGet() == 0) { finishHim(); } } private void finishHim() { listener.onResponse(new CoordinateMultiSearchResponse(responses.toArray(new CoordinateMultiSearchResponse.Item[responses.length()]))); } }); } }
clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ);
@Override protected void doExecute(final MultiSearchRequest request, final ActionListener<MultiSearchResponse> listener) { ClusterState clusterState = clusterService.state(); clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ);
clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ);
@Override protected void doExecute(final MultiPercolateRequest request, final ActionListener<MultiPercolateResponse> listener) { final ClusterState clusterState = clusterService.state(); clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ);
@Override protected void doExecute(final MultiGetRequest request, final ActionListener<MultiGetResponse> listener) { ClusterState clusterState = clusterService.state(); clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ);
@Override protected void doExecute(final MultiGetRequest request, final ActionListener<MultiGetResponse> listener) { ClusterState clusterState = clusterService.state(); clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ);
@Override protected void doExecute(final MultiGetRequest request, final ActionListener<MultiGetResponse> listener) { ClusterState clusterState = clusterService.state(); clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ);
@Override protected void doExecute(final MultiGetRequest request, final ActionListener<MultiGetResponse> listener) { ClusterState clusterState = clusterService.state(); clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ);
SearchResponse.Clusters clusters) { clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ);
Map<String, AliasFilter> remoteAliasMap, ActionListener<SearchResponse> listener) { clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ);
ClusterState clusterState = clusterService.state(); clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ);
protected AbstractSearchAsyncAction(ESLogger logger, SearchServiceTransportAction searchService, ClusterService clusterService, IndexNameExpressionResolver indexNameExpressionResolver, SearchPhaseController searchPhaseController, ThreadPool threadPool, SearchRequest request, ActionListener<SearchResponse> listener) { this.logger = logger; this.searchService = searchService; this.indexNameExpressionResolver = indexNameExpressionResolver; this.searchPhaseController = searchPhaseController; this.threadPool = threadPool; this.request = request; this.listener = listener; this.clusterState = clusterService.state(); nodes = clusterState.nodes(); clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ); // TODO: I think startTime() should become part of ActionRequest and that should be used both for index name // date math expressions and $now in scripts. This way all apis will deal with now in the same way instead // of just for the _search api String[] concreteIndices = indexNameExpressionResolver.concreteIndices(clusterState, request.indicesOptions(), startTime(), request.indices()); for (String index : concreteIndices) { clusterState.blocks().indexBlockedRaiseException(ClusterBlockLevel.READ, index); } Map<String, Set<String>> routingMap = indexNameExpressionResolver.resolveSearchRouting(clusterState, request.routing(), request.indices()); shardsIts = clusterService.operationRouting().searchShards(clusterState, concreteIndices, routingMap, request.preference()); expectedSuccessfulOps = shardsIts.size(); // we need to add 1 for non active partition, since we count it in the total! expectedTotalOps = shardsIts.totalSizeWith1ForEmpty(); firstResults = new AtomicArray<>(shardsIts.size()); }