Browse Source

Drop BigArrays from QueryShardContext (#66945)

It's only used in aggs land and aggs have their own easy way to get it.
Nik Everett 4 years ago
parent
commit
3052ab8dc2
28 changed files with 57 additions and 86 deletions
  1. 0 1
      server/src/main/java/org/elasticsearch/index/IndexService.java
  2. 0 14
      server/src/main/java/org/elasticsearch/index/query/QueryShardContext.java
  3. 1 0
      server/src/main/java/org/elasticsearch/search/SearchService.java
  4. 11 9
      server/src/main/java/org/elasticsearch/search/aggregations/support/AggregationContext.java
  5. 5 3
      server/src/main/java/org/elasticsearch/search/sort/FieldSortBuilder.java
  6. 3 2
      server/src/main/java/org/elasticsearch/search/sort/GeoDistanceSortBuilder.java
  7. 4 2
      server/src/main/java/org/elasticsearch/search/sort/ScoreSortBuilder.java
  8. 3 2
      server/src/main/java/org/elasticsearch/search/sort/ScriptSortBuilder.java
  9. 7 2
      server/src/main/java/org/elasticsearch/search/sort/SortBuilder.java
  10. 1 2
      server/src/test/java/org/elasticsearch/cluster/metadata/MetadataCreateIndexServiceTests.java
  11. 3 4
      server/src/test/java/org/elasticsearch/index/mapper/DateFieldTypeTests.java
  12. 1 2
      server/src/test/java/org/elasticsearch/index/mapper/FieldNamesFieldTypeTests.java
  13. 1 1
      server/src/test/java/org/elasticsearch/index/mapper/IndexFieldTypeTests.java
  14. 2 2
      server/src/test/java/org/elasticsearch/index/mapper/NumberFieldTypeTests.java
  15. 1 2
      server/src/test/java/org/elasticsearch/index/mapper/RangeFieldTypeTests.java
  16. 0 2
      server/src/test/java/org/elasticsearch/index/query/QueryShardContextTests.java
  17. 1 4
      server/src/test/java/org/elasticsearch/index/query/RangeQueryRewriteTests.java
  18. 0 1
      server/src/test/java/org/elasticsearch/search/fetch/subphase/FieldFetcherTests.java
  19. 1 2
      server/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlightBuilderTests.java
  20. 2 3
      server/src/test/java/org/elasticsearch/search/rescore/QueryRescorerBuilderTests.java
  21. 1 2
      server/src/test/java/org/elasticsearch/search/sort/AbstractSortTestCase.java
  22. 2 3
      server/src/test/java/org/elasticsearch/search/suggest/AbstractSuggestionBuilderTestCase.java
  23. 1 7
      test/framework/src/main/java/org/elasticsearch/search/aggregations/AggregatorTestCase.java
  24. 1 2
      test/framework/src/main/java/org/elasticsearch/test/AbstractBuilderTestCase.java
  25. 1 2
      x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/security/authz/accesscontrol/DocumentSubsetBitsetCacheTests.java
  26. 2 3
      x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/security/authz/accesscontrol/SecurityIndexReaderWrapperIntegrationTests.java
  27. 1 2
      x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/job/RollupIndexerIndexingTests.java
  28. 1 5
      x-pack/plugin/wildcard/src/test/java/org/elasticsearch/xpack/wildcard/mapper/WildcardFieldMapperTests.java

+ 0 - 1
server/src/main/java/org/elasticsearch/index/IndexService.java

@@ -608,7 +608,6 @@ public class IndexService extends AbstractIndexComponent implements IndicesClust
             shardId,
             shardRequestIndex,
             indexSettings,
-            bigArrays,
             indexCache.bitsetFilterCache(),
             indexFieldData::getForField,
             mapperService(),

+ 0 - 14
server/src/main/java/org/elasticsearch/index/query/QueryShardContext.java

@@ -36,7 +36,6 @@ import org.elasticsearch.common.TriFunction;
 import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
 import org.elasticsearch.common.lucene.search.Queries;
 import org.elasticsearch.common.regex.Regex;
-import org.elasticsearch.common.util.BigArrays;
 import org.elasticsearch.common.xcontent.NamedXContentRegistry;
 import org.elasticsearch.common.xcontent.XContentParser;
 import org.elasticsearch.index.Index;
@@ -90,7 +89,6 @@ public class QueryShardContext extends QueryRewriteContext {
 
     private final ScriptService scriptService;
     private final IndexSettings indexSettings;
-    private final BigArrays bigArrays;
     private final MapperService mapperService;
     private final MappingLookup mappingLookup;
     private final SimilarityService similarityService;
@@ -120,7 +118,6 @@ public class QueryShardContext extends QueryRewriteContext {
         int shardId,
         int shardRequestIndex,
         IndexSettings indexSettings,
-        BigArrays bigArrays,
         BitsetFilterCache bitsetFilterCache,
         TriFunction<MappedFieldType, String, Supplier<SearchLookup>, IndexFieldData<?>> indexFieldDataLookup,
         MapperService mapperService,
@@ -142,7 +139,6 @@ public class QueryShardContext extends QueryRewriteContext {
             shardId,
             shardRequestIndex,
             indexSettings,
-            bigArrays,
             bitsetFilterCache,
             indexFieldDataLookup,
             mapperService,
@@ -170,7 +166,6 @@ public class QueryShardContext extends QueryRewriteContext {
             source.shardId,
             source.shardRequestIndex,
             source.indexSettings,
-            source.bigArrays,
             source.bitsetFilterCache,
             source.indexFieldDataService,
             source.mapperService,
@@ -192,7 +187,6 @@ public class QueryShardContext extends QueryRewriteContext {
     private QueryShardContext(int shardId,
                               int shardRequestIndex,
                               IndexSettings indexSettings,
-                              BigArrays bigArrays,
                               BitsetFilterCache bitsetFilterCache,
                               TriFunction<MappedFieldType, String, Supplier<SearchLookup>, IndexFieldData<?>> indexFieldDataLookup,
                               MapperService mapperService,
@@ -215,7 +209,6 @@ public class QueryShardContext extends QueryRewriteContext {
         this.similarityService = similarityService;
         this.mapperService = mapperService;
         this.mappingLookup = mappingLookup;
-        this.bigArrays = bigArrays;
         this.bitsetFilterCache = bitsetFilterCache;
         this.indexFieldDataService = indexFieldDataLookup;
         this.allowUnmappedFields = indexSettings.isDefaultAllowUnmappedFields();
@@ -607,13 +600,6 @@ public class QueryShardContext extends QueryRewriteContext {
         return fullyQualifiedIndex;
     }
 
-    /**
-     * Return the {@link BigArrays} instance for this node.
-     */
-    public BigArrays bigArrays() {  // TODO this is only used in agg land, maybe remove it from here?
-        return bigArrays;
-    }
-
     private static Map<String, MappedFieldType> parseRuntimeMappings(Map<String, Object> runtimeMappings, MapperService mapperService) {
         Map<String, MappedFieldType> runtimeFieldTypes = new HashMap<>();
         if (runtimeMappings.isEmpty() == false) {

+ 1 - 0
server/src/main/java/org/elasticsearch/search/SearchService.java

@@ -956,6 +956,7 @@ public class SearchService extends AbstractLifecycleComponent implements IndexEv
         if (source.aggregations() != null && includeAggregations) {
             AggregationContext aggContext = new ProductionAggregationContext(
                 context.getQueryShardContext(),
+                bigArrays,
                 source.aggregations().bytesToPreallocate(),
                 /*
                  * The query on the search context right now doesn't include

+ 11 - 9
server/src/main/java/org/elasticsearch/search/aggregations/support/AggregationContext.java

@@ -251,7 +251,7 @@ public abstract class AggregationContext implements Releasable {
      */
     public static class ProductionAggregationContext extends AggregationContext {
         private final QueryShardContext context;
-        private final PreallocatedCircuitBreakerService breakerService;
+        private final PreallocatedCircuitBreakerService preallocatedBreakerService;
         private final BigArrays bigArrays;
         private final Supplier<Query> topLevelQuery;
         private final AggregationProfiler profiler;
@@ -266,6 +266,7 @@ public abstract class AggregationContext implements Releasable {
 
         public ProductionAggregationContext(
             QueryShardContext context,
+            BigArrays bigArrays,
             long bytesToPreallocate,
             Supplier<Query> topLevelQuery,
             @Nullable AggregationProfiler profiler,
@@ -285,16 +286,16 @@ public abstract class AggregationContext implements Releasable {
                  * anything. Setting the breakerService reference to null will
                  * cause us to skip it when we close this context.
                  */
-                this.breakerService = null;
-                this.bigArrays = context.bigArrays().withCircuitBreaking();
+                this.preallocatedBreakerService = null;
+                this.bigArrays = bigArrays.withCircuitBreaking();
             } else {
-                this.breakerService = new PreallocatedCircuitBreakerService(
-                    context.bigArrays().breakerService(),
+                this.preallocatedBreakerService = new PreallocatedCircuitBreakerService(
+                    bigArrays.breakerService(),
                     CircuitBreaker.REQUEST,
                     bytesToPreallocate,
                     "aggregations"
                 );
-                this.bigArrays = context.bigArrays().withBreakerService(breakerService).withCircuitBreaking();
+                this.bigArrays = bigArrays.withBreakerService(preallocatedBreakerService).withCircuitBreaking();
             }
             this.topLevelQuery = topLevelQuery;
             this.profiler = profiler;
@@ -416,7 +417,7 @@ public abstract class AggregationContext implements Releasable {
 
         @Override
         public BucketedSort buildBucketedSort(SortBuilder<?> sort, int bucketSize, BucketedSort.ExtraData extra) throws IOException {
-            return sort.buildBucketedSort(context, bucketSize, extra);
+            return sort.buildBucketedSort(context, bigArrays, bucketSize, extra);
         }
 
         @Override
@@ -436,7 +437,8 @@ public abstract class AggregationContext implements Releasable {
 
         @Override
         public CircuitBreaker breaker() {
-            return context.bigArrays().breakerService().getBreaker(CircuitBreaker.REQUEST);
+            // preallocatedBreakerService may be null if we haven't preallocated so use the one in bigArrays.
+            return bigArrays.breakerService().getBreaker(CircuitBreaker.REQUEST);
         }
 
         @Override
@@ -456,7 +458,7 @@ public abstract class AggregationContext implements Releasable {
              * after all the aggregations that allocate bytes on it.
              */
             List<Releasable> releaseMe = new ArrayList<>(this.releaseMe);
-            releaseMe.add(breakerService);
+            releaseMe.add(preallocatedBreakerService);
             Releasables.close(releaseMe);
         }
     }

+ 5 - 3
server/src/main/java/org/elasticsearch/search/sort/FieldSortBuilder.java

@@ -32,6 +32,7 @@ import org.elasticsearch.common.io.stream.StreamInput;
 import org.elasticsearch.common.io.stream.StreamOutput;
 import org.elasticsearch.common.time.DateMathParser;
 import org.elasticsearch.common.time.DateUtils;
+import org.elasticsearch.common.util.BigArrays;
 import org.elasticsearch.common.xcontent.ObjectParser;
 import org.elasticsearch.common.xcontent.ObjectParser.ValueType;
 import org.elasticsearch.common.xcontent.XContentBuilder;
@@ -415,7 +416,8 @@ public class FieldSortBuilder extends SortBuilder<FieldSortBuilder> {
     }
 
     @Override
-    public BucketedSort buildBucketedSort(QueryShardContext context, int bucketSize, BucketedSort.ExtraData extra) throws IOException {
+    public BucketedSort buildBucketedSort(QueryShardContext context, BigArrays bigArrays, int bucketSize, BucketedSort.ExtraData extra)
+        throws IOException {
         if (DOC_FIELD_NAME.equals(fieldName)) {
             throw new IllegalArgumentException("sorting by _doc is not supported");
         }
@@ -438,11 +440,11 @@ public class FieldSortBuilder extends SortBuilder<FieldSortBuilder> {
             }
             IndexNumericFieldData numericFieldData = (IndexNumericFieldData) fieldData;
             NumericType resolvedType = resolveNumericType(numericType);
-            return numericFieldData.newBucketedSort(resolvedType, context.bigArrays(), missing, localSortMode(), nested, order,
+            return numericFieldData.newBucketedSort(resolvedType, bigArrays, missing, localSortMode(), nested, order,
                     fieldType.docValueFormat(null, null), bucketSize, extra);
         }
         try {
-            return fieldData.newBucketedSort(context.bigArrays(), missing, localSortMode(), nested, order,
+            return fieldData.newBucketedSort(bigArrays, missing, localSortMode(), nested, order,
                     fieldType.docValueFormat(null, null), bucketSize, extra);
         } catch (IllegalArgumentException e) {
             throw new IllegalArgumentException("error building sort for field [" + fieldName + "] of type ["

+ 3 - 2
server/src/main/java/org/elasticsearch/search/sort/GeoDistanceSortBuilder.java

@@ -516,7 +516,8 @@ public class GeoDistanceSortBuilder extends SortBuilder<GeoDistanceSortBuilder>
     }
 
     @Override
-    public BucketedSort buildBucketedSort(QueryShardContext context, int bucketSize, BucketedSort.ExtraData extra) throws IOException {
+    public BucketedSort buildBucketedSort(QueryShardContext context, BigArrays bigArrays, int bucketSize, BucketedSort.ExtraData extra)
+        throws IOException {
         GeoPoint[] localPoints = localPoints();
         MultiValueMode localSortMode = localSortMode();
         IndexGeoPointFieldData geoIndexFieldData = fieldData(context);
@@ -525,7 +526,7 @@ public class GeoDistanceSortBuilder extends SortBuilder<GeoDistanceSortBuilder>
         // TODO implement the single point optimization above
 
         return comparatorSource(localPoints, localSortMode, geoIndexFieldData, nested)
-                .newBucketedSort(context.bigArrays(), order, DocValueFormat.RAW, bucketSize, extra);
+                .newBucketedSort(bigArrays, order, DocValueFormat.RAW, bucketSize, extra);
     }
 
     private GeoPoint[] localPoints() {

+ 4 - 2
server/src/main/java/org/elasticsearch/search/sort/ScoreSortBuilder.java

@@ -24,6 +24,7 @@ import org.apache.lucene.search.Scorable;
 import org.apache.lucene.search.SortField;
 import org.elasticsearch.common.io.stream.StreamInput;
 import org.elasticsearch.common.io.stream.StreamOutput;
+import org.elasticsearch.common.util.BigArrays;
 import org.elasticsearch.common.xcontent.ObjectParser;
 import org.elasticsearch.common.xcontent.XContentBuilder;
 import org.elasticsearch.common.xcontent.XContentParser;
@@ -104,8 +105,9 @@ public class ScoreSortBuilder extends SortBuilder<ScoreSortBuilder> {
     }
 
     @Override
-    public BucketedSort buildBucketedSort(QueryShardContext context, int bucketSize, BucketedSort.ExtraData extra) throws IOException {
-        return new BucketedSort.ForFloats(context.bigArrays(), order, DocValueFormat.RAW, bucketSize, extra) {
+    public BucketedSort buildBucketedSort(QueryShardContext context, BigArrays bigArrays, int bucketSize, BucketedSort.ExtraData extra)
+        throws IOException {
+        return new BucketedSort.ForFloats(bigArrays, order, DocValueFormat.RAW, bucketSize, extra) {
             @Override
             public boolean needsScores() { return true; }
 

+ 3 - 2
server/src/main/java/org/elasticsearch/search/sort/ScriptSortBuilder.java

@@ -239,8 +239,9 @@ public class ScriptSortBuilder extends SortBuilder<ScriptSortBuilder> {
     }
 
     @Override
-    public BucketedSort buildBucketedSort(QueryShardContext context, int bucketSize, BucketedSort.ExtraData extra) throws IOException {
-        return fieldComparatorSource(context).newBucketedSort(context.bigArrays(), order, DocValueFormat.RAW, bucketSize, extra);
+    public BucketedSort buildBucketedSort(QueryShardContext context, BigArrays bigArrays, int bucketSize, BucketedSort.ExtraData extra)
+        throws IOException {
+        return fieldComparatorSource(context).newBucketedSort(bigArrays, order, DocValueFormat.RAW, bucketSize, extra);
     }
 
     private IndexFieldData.XFieldComparatorSource fieldComparatorSource(QueryShardContext context) throws IOException {

+ 7 - 2
server/src/main/java/org/elasticsearch/search/sort/SortBuilder.java

@@ -28,6 +28,7 @@ import org.elasticsearch.common.ParsingException;
 import org.elasticsearch.common.Strings;
 import org.elasticsearch.common.io.stream.NamedWriteable;
 import org.elasticsearch.common.lucene.search.Queries;
+import org.elasticsearch.common.util.BigArrays;
 import org.elasticsearch.common.xcontent.ToXContentObject;
 import org.elasticsearch.common.xcontent.XContentParser;
 import org.elasticsearch.index.fielddata.IndexFieldData.XFieldComparatorSource.Nested;
@@ -70,8 +71,12 @@ public abstract class SortBuilder<T extends SortBuilder<T>> implements NamedWrit
     /**
      * Create a {@linkplain BucketedSort} which is useful for sorting inside of aggregations.
      */
-    public abstract BucketedSort buildBucketedSort(QueryShardContext context,
-            int bucketSize, BucketedSort.ExtraData extra) throws IOException;
+    public abstract BucketedSort buildBucketedSort(
+        QueryShardContext context,
+        BigArrays bigArrays,
+        int bucketSize,
+        BucketedSort.ExtraData extra
+    ) throws IOException;
 
     /**
      * Set the order of sorting.

+ 1 - 2
server/src/test/java/org/elasticsearch/cluster/metadata/MetadataCreateIndexServiceTests.java

@@ -46,7 +46,6 @@ import org.elasticsearch.common.settings.IndexScopedSettings;
 import org.elasticsearch.common.settings.Setting;
 import org.elasticsearch.common.settings.Settings;
 import org.elasticsearch.common.unit.TimeValue;
-import org.elasticsearch.common.util.BigArrays;
 import org.elasticsearch.common.xcontent.NamedXContentRegistry;
 import org.elasticsearch.common.xcontent.XContentFactory;
 import org.elasticsearch.index.Index;
@@ -125,7 +124,7 @@ public class MetadataCreateIndexServiceTests extends ESTestCase {
             .put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, 1).put(IndexMetadata.SETTING_NUMBER_OF_REPLICAS, 1).build();
         queryShardContext = new QueryShardContext(0, 0,
             new IndexSettings(IndexMetadata.builder("test").settings(indexSettings).build(), indexSettings),
-            BigArrays.NON_RECYCLING_INSTANCE, null, null, null, null, null, null, xContentRegistry(), writableRegistry(),
+            null, null, null, null, null, null, xContentRegistry(), writableRegistry(),
             null, null, () -> randomNonNegativeLong(), null, null, () -> true, null, emptyMap());
     }
 

+ 3 - 4
server/src/test/java/org/elasticsearch/index/mapper/DateFieldTypeTests.java

@@ -38,7 +38,6 @@ import org.elasticsearch.common.settings.Settings;
 import org.elasticsearch.common.time.DateFormatter;
 import org.elasticsearch.common.time.DateFormatters;
 import org.elasticsearch.common.time.DateMathParser;
-import org.elasticsearch.common.util.BigArrays;
 import org.elasticsearch.core.internal.io.IOUtils;
 import org.elasticsearch.index.IndexSettings;
 import org.elasticsearch.index.fielddata.IndexNumericFieldData;
@@ -167,7 +166,7 @@ public class DateFieldTypeTests extends FieldTypeTestCase {
                 .put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, 1).put(IndexMetadata.SETTING_NUMBER_OF_REPLICAS, 1).build();
         QueryShardContext context = new QueryShardContext(0, 0,
                 new IndexSettings(IndexMetadata.builder("foo").settings(indexSettings).build(), indexSettings),
-                BigArrays.NON_RECYCLING_INSTANCE, null, null, null, null, null, null,
+                null, null, null, null, null, null,
                 xContentRegistry(), writableRegistry(), null, null, () -> nowInMillis, null, null, () -> true, null, emptyMap());
         MappedFieldType ft = new DateFieldType("field");
         String date = "2015-10-12T14:10:55";
@@ -189,7 +188,7 @@ public class DateFieldTypeTests extends FieldTypeTestCase {
                 .put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, 1).put(IndexMetadata.SETTING_NUMBER_OF_REPLICAS, 1).build();
         QueryShardContext context = new QueryShardContext(0, 0,
                 new IndexSettings(IndexMetadata.builder("foo").settings(indexSettings).build(), indexSettings),
-                BigArrays.NON_RECYCLING_INSTANCE, null, null, null, null, null, null, xContentRegistry(), writableRegistry(),
+                null, null, null, null, null, null, xContentRegistry(), writableRegistry(),
                 null, null, () -> nowInMillis, null, null, () -> true, null, emptyMap());
         MappedFieldType ft = new DateFieldType("field");
         String date1 = "2015-10-12T14:10:55";
@@ -233,7 +232,7 @@ public class DateFieldTypeTests extends FieldTypeTestCase {
         IndexSettings indexSettings = new IndexSettings(indexMetadata, settings);
 
         QueryShardContext context = new QueryShardContext(0, 0, indexSettings,
-            BigArrays.NON_RECYCLING_INSTANCE, null, null, null, null, null, null, xContentRegistry(), writableRegistry(),
+            null, null, null, null, null, null, xContentRegistry(), writableRegistry(),
             null, null, () -> 0L, null, null, () -> true, null, emptyMap());
 
         MappedFieldType ft = new DateFieldType("field");

+ 1 - 2
server/src/test/java/org/elasticsearch/index/mapper/FieldNamesFieldTypeTests.java

@@ -24,7 +24,6 @@ import org.apache.lucene.search.TermQuery;
 import org.elasticsearch.Version;
 import org.elasticsearch.cluster.metadata.IndexMetadata;
 import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.common.util.BigArrays;
 import org.elasticsearch.index.IndexSettings;
 import org.elasticsearch.index.query.QueryShardContext;
 import org.elasticsearch.test.ESTestCase;
@@ -48,7 +47,7 @@ public class FieldNamesFieldTypeTests extends ESTestCase {
         List<FieldMapper> mappers = Stream.of(fieldNamesFieldType, fieldType).map(MockFieldMapper::new).collect(Collectors.toList());
         MappingLookup mappingLookup = new MappingLookup(Mapping.EMPTY, mappers, emptyList(), emptyList(), null, null, null);
         QueryShardContext queryShardContext = new QueryShardContext(0, 0,
-                indexSettings, BigArrays.NON_RECYCLING_INSTANCE, null, null, null, mappingLookup,
+                indexSettings, null, null, null, mappingLookup,
                 null, null, null, null, null, null, () -> 0L, null, null, () -> true, null, emptyMap());
                 Query termQuery = fieldNamesFieldType.termQuery("field_name", queryShardContext);
         assertEquals(new TermQuery(new Term(FieldNamesFieldMapper.CONTENT_TYPE, "field_name")), termQuery);

+ 1 - 1
server/src/test/java/org/elasticsearch/index/mapper/IndexFieldTypeTests.java

@@ -69,7 +69,7 @@ public class IndexFieldTypeTests extends ESTestCase {
         IndexSettings indexSettings = new IndexSettings(indexMetadata, Settings.EMPTY);
 
         Predicate<String> indexNameMatcher = pattern -> Regex.simpleMatch(pattern, "index");
-        return new QueryShardContext(0, 0, indexSettings, null, null, null, null, null, null, null, xContentRegistry(), writableRegistry(),
+        return new QueryShardContext(0, 0, indexSettings, null, null, null, null, null, null, xContentRegistry(), writableRegistry(),
             null, null, System::currentTimeMillis, null, indexNameMatcher, () -> true, null, emptyMap());
     }
 }

+ 2 - 2
server/src/test/java/org/elasticsearch/index/mapper/NumberFieldTypeTests.java

@@ -20,6 +20,7 @@
 package org.elasticsearch.index.mapper;
 
 import com.carrotsearch.randomizedtesting.generators.RandomPicks;
+
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.DoublePoint;
 import org.apache.lucene.document.FloatPoint;
@@ -43,7 +44,6 @@ import org.apache.lucene.util.TestUtil;
 import org.elasticsearch.Version;
 import org.elasticsearch.cluster.metadata.IndexMetadata;
 import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.common.util.BigArrays;
 import org.elasticsearch.common.xcontent.XContentBuilder;
 import org.elasticsearch.common.xcontent.XContentType;
 import org.elasticsearch.core.internal.io.IOUtils;
@@ -474,7 +474,7 @@ public class NumberFieldTypeTests extends FieldTypeTestCase {
         IndexSearcher searcher = newSearcher(reader);
 
         QueryShardContext context = new QueryShardContext(0, 0, indexSettings,
-            BigArrays.NON_RECYCLING_INSTANCE, null, null, null, null, null, null, xContentRegistry(), writableRegistry(),
+            null, null, null, null, null, null, xContentRegistry(), writableRegistry(),
             null, null, () -> 0L, null, null, () -> true, null, emptyMap());
 
         final int iters = 10;

+ 1 - 2
server/src/test/java/org/elasticsearch/index/mapper/RangeFieldTypeTests.java

@@ -37,7 +37,6 @@ import org.elasticsearch.common.geo.ShapeRelation;
 import org.elasticsearch.common.network.InetAddresses;
 import org.elasticsearch.common.settings.Settings;
 import org.elasticsearch.common.time.DateFormatter;
-import org.elasticsearch.common.util.BigArrays;
 import org.elasticsearch.index.IndexSettings;
 import org.elasticsearch.index.mapper.DateFieldMapper.DateFieldType;
 import org.elasticsearch.index.mapper.RangeFieldMapper.RangeFieldType;
@@ -213,7 +212,7 @@ public class RangeFieldTypeTests extends FieldTypeTestCase {
         Settings indexSettings = Settings.builder()
             .put(IndexMetadata.SETTING_VERSION_CREATED, Version.CURRENT).build();
         IndexSettings idxSettings = IndexSettingsModule.newIndexSettings(randomAlphaOfLengthBetween(1, 10), indexSettings);
-        return new QueryShardContext(0, 0, idxSettings, BigArrays.NON_RECYCLING_INSTANCE, null, null, null, null, null, null,
+        return new QueryShardContext(0, 0, idxSettings, null, null, null, null, null, null,
             xContentRegistry(), writableRegistry(), null, null, () -> nowInMillis, null, null, () -> true, null, emptyMap());
     }
 

+ 0 - 2
server/src/test/java/org/elasticsearch/index/query/QueryShardContextTests.java

@@ -207,7 +207,6 @@ public class QueryShardContextTests extends ESTestCase {
             0,
             0,
             indexSettings,
-            BigArrays.NON_RECYCLING_INSTANCE,
             null,
             null,
             null,
@@ -400,7 +399,6 @@ public class QueryShardContextTests extends ESTestCase {
             0,
             0,
             indexSettings,
-            BigArrays.NON_RECYCLING_INSTANCE,
             null,
             (mappedFieldType, idxName, searchLookup) -> mappedFieldType.fielddataBuilder(idxName, searchLookup).build(null, null),
             mapperService,

+ 1 - 4
server/src/test/java/org/elasticsearch/index/query/RangeQueryRewriteTests.java

@@ -24,7 +24,6 @@ import org.apache.lucene.index.MultiReader;
 import org.apache.lucene.search.IndexSearcher;
 import org.elasticsearch.common.Strings;
 import org.elasticsearch.common.compress.CompressedXContent;
-import org.elasticsearch.common.util.BigArrays;
 import org.elasticsearch.common.xcontent.XContentFactory;
 import org.elasticsearch.index.IndexService;
 import org.elasticsearch.index.mapper.MappedFieldType.Relation;
@@ -45,7 +44,6 @@ public class RangeQueryRewriteTests extends ESSingleNodeTestCase {
             0,
             0,
             indexService.getIndexSettings(),
-            BigArrays.NON_RECYCLING_INSTANCE,
             null,
             null,
             indexService.mapperService(),
@@ -78,7 +76,7 @@ public class RangeQueryRewriteTests extends ESSingleNodeTestCase {
             .endObject().endObject());
         indexService.mapperService().merge("type",
                 new CompressedXContent(mapping), MergeReason.MAPPING_UPDATE);
-        QueryRewriteContext context = new QueryShardContext(0, 0, indexService.getIndexSettings(), null, null, null,
+        QueryRewriteContext context = new QueryShardContext(0, 0, indexService.getIndexSettings(), null, null,
             indexService.mapperService(), indexService.mapperService().mappingLookup(), null, null, xContentRegistry(), writableRegistry(),
                 null, null, null, null, null, () -> true, null, emptyMap());
         RangeQueryBuilder range = new RangeQueryBuilder("foo");
@@ -102,7 +100,6 @@ public class RangeQueryRewriteTests extends ESSingleNodeTestCase {
             0,
             0,
             indexService.getIndexSettings(),
-            BigArrays.NON_RECYCLING_INSTANCE,
             null,
             null,
             indexService.mapperService(),

+ 0 - 1
server/src/test/java/org/elasticsearch/search/fetch/subphase/FieldFetcherTests.java

@@ -743,7 +743,6 @@ public class FieldFetcherTests extends MapperServiceTestCase {
             indexSettings,
             null,
             null,
-            null,
             mapperService,
             mapperService.mappingLookup(),
             null,

+ 1 - 2
server/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlightBuilderTests.java

@@ -27,7 +27,6 @@ import org.elasticsearch.common.io.stream.BytesStreamOutput;
 import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
 import org.elasticsearch.common.io.stream.StreamInput;
 import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.common.util.BigArrays;
 import org.elasticsearch.common.xcontent.NamedXContentRegistry;
 import org.elasticsearch.common.xcontent.ToXContent;
 import org.elasticsearch.common.xcontent.XContentBuilder;
@@ -278,7 +277,7 @@ public class HighlightBuilderTests extends ESTestCase {
         Index index = new Index(randomAlphaOfLengthBetween(1, 10), "_na_");
         IndexSettings idxSettings = IndexSettingsModule.newIndexSettings(index, indexSettings);
         // shard context will only need indicesQueriesRegistry for building Query objects nested in highlighter
-        QueryShardContext mockShardContext = new QueryShardContext(0, 0, idxSettings, BigArrays.NON_RECYCLING_INSTANCE,
+        QueryShardContext mockShardContext = new QueryShardContext(0, 0, idxSettings,
                 null, null, null, null, null, null, xContentRegistry(), namedWriteableRegistry,
                 null, null, System::currentTimeMillis, null, null, () -> true, null, emptyMap()) {
             @Override

+ 2 - 3
server/src/test/java/org/elasticsearch/search/rescore/QueryRescorerBuilderTests.java

@@ -26,7 +26,6 @@ import org.elasticsearch.cluster.metadata.IndexMetadata;
 import org.elasticsearch.common.ParsingException;
 import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
 import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.common.util.BigArrays;
 import org.elasticsearch.common.xcontent.NamedObjectNotFoundException;
 import org.elasticsearch.common.xcontent.NamedXContentRegistry;
 import org.elasticsearch.common.xcontent.ToXContent;
@@ -142,7 +141,7 @@ public class QueryRescorerBuilderTests extends ESTestCase {
                 .put(IndexMetadata.SETTING_VERSION_CREATED, Version.CURRENT).build();
         IndexSettings idxSettings = IndexSettingsModule.newIndexSettings(randomAlphaOfLengthBetween(1, 10), indexSettings);
         // shard context will only need indicesQueriesRegistry for building Query objects nested in query rescorer
-        QueryShardContext mockShardContext = new QueryShardContext(0, 0, idxSettings, BigArrays.NON_RECYCLING_INSTANCE,
+        QueryShardContext mockShardContext = new QueryShardContext(0, 0, idxSettings,
             null, null, null, null, null, null,
             xContentRegistry(), namedWriteableRegistry, null, null, () -> nowInMillis, null, null, () -> true, null, emptyMap()) {
             @Override
@@ -186,7 +185,7 @@ public class QueryRescorerBuilderTests extends ESTestCase {
             .put(IndexMetadata.SETTING_VERSION_CREATED, Version.CURRENT).build();
         IndexSettings idxSettings = IndexSettingsModule.newIndexSettings(randomAlphaOfLengthBetween(1, 10), indexSettings);
         // shard context will only need indicesQueriesRegistry for building Query objects nested in query rescorer
-        QueryShardContext mockShardContext = new QueryShardContext(0, 0, idxSettings, BigArrays.NON_RECYCLING_INSTANCE,
+        QueryShardContext mockShardContext = new QueryShardContext(0, 0, idxSettings,
                 null, null, null, null, null, null,
                 xContentRegistry(), namedWriteableRegistry, null, null, () -> nowInMillis, null, null, () -> true, null, emptyMap()) {
             @Override

+ 1 - 2
server/src/test/java/org/elasticsearch/search/sort/AbstractSortTestCase.java

@@ -26,7 +26,6 @@ import org.elasticsearch.cluster.metadata.IndexMetadata;
 import org.elasticsearch.common.TriFunction;
 import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
 import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.common.util.BigArrays;
 import org.elasticsearch.common.xcontent.NamedXContentRegistry;
 import org.elasticsearch.common.xcontent.ToXContent;
 import org.elasticsearch.common.xcontent.XContentBuilder;
@@ -201,7 +200,7 @@ public abstract class AbstractSortTestCase<T extends SortBuilder<T>> extends EST
             IndexFieldData.Builder builder = fieldType.fielddataBuilder(fieldIndexName, searchLookup);
             return builder.build(new IndexFieldDataCache.None(), null);
         };
-        return new QueryShardContext(0, 0, idxSettings, BigArrays.NON_RECYCLING_INSTANCE, bitsetFilterCache, indexFieldDataLookup,
+        return new QueryShardContext(0, 0, idxSettings, bitsetFilterCache, indexFieldDataLookup,
                 null, null, null, scriptService, xContentRegistry(), namedWriteableRegistry, null, searcher,
                 () -> randomNonNegativeLong(), null, null, () -> true, null, emptyMap()) {
 

+ 2 - 3
server/src/test/java/org/elasticsearch/search/suggest/AbstractSuggestionBuilderTestCase.java

@@ -25,7 +25,6 @@ import org.elasticsearch.cluster.metadata.IndexMetadata;
 import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
 import org.elasticsearch.common.io.stream.Writeable;
 import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.common.util.BigArrays;
 import org.elasticsearch.common.xcontent.NamedXContentRegistry;
 import org.elasticsearch.common.xcontent.ToXContent;
 import org.elasticsearch.common.xcontent.XContentBuilder;
@@ -185,7 +184,7 @@ public abstract class AbstractSuggestionBuilderTestCase<SB extends SuggestionBui
                     ((Script) invocation.getArguments()[0]).getIdOrCode()));
             List<FieldMapper> mappers = Collections.singletonList(new MockFieldMapper(fieldType));
             MappingLookup lookup = new MappingLookup(Mapping.EMPTY, mappers, emptyList(), emptyList(), null, null, null);
-            QueryShardContext mockShardContext = new QueryShardContext(0, 0, idxSettings, BigArrays.NON_RECYCLING_INSTANCE, null,
+            QueryShardContext mockShardContext = new QueryShardContext(0, 0, idxSettings, null,
                 null, mapperService, lookup, null, scriptService, xContentRegistry(), namedWriteableRegistry, null, null,
                     System::currentTimeMillis, null, null, () -> true, null, emptyMap());
 
@@ -221,7 +220,7 @@ public abstract class AbstractSuggestionBuilderTestCase<SB extends SuggestionBui
         IndexSettings idxSettings = IndexSettingsModule.newIndexSettings(new Index(randomAlphaOfLengthBetween(1, 10), "_na_"),
             indexSettings);
 
-        QueryShardContext mockShardContext = new QueryShardContext(0, 0, idxSettings, BigArrays.NON_RECYCLING_INSTANCE, null,
+        QueryShardContext mockShardContext = new QueryShardContext(0, 0, idxSettings, null,
             null, mock(MapperService.class), MappingLookup.EMPTY, null, null, xContentRegistry(), namedWriteableRegistry, null, null,
             System::currentTimeMillis, null, null, () -> true, null, emptyMap());
         if (randomBoolean()) {

+ 1 - 7
test/framework/src/main/java/org/elasticsearch/search/aggregations/AggregatorTestCase.java

@@ -60,7 +60,6 @@ import org.elasticsearch.common.lease.Releasables;
 import org.elasticsearch.common.lucene.index.ElasticsearchDirectoryReader;
 import org.elasticsearch.common.network.NetworkAddress;
 import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.common.util.BigArrays;
 import org.elasticsearch.common.util.MockBigArrays;
 import org.elasticsearch.common.util.MockPageCacheRecycler;
 import org.elasticsearch.common.xcontent.ContextParser;
@@ -240,11 +239,6 @@ public abstract class AggregatorTestCase extends ESTestCase {
                                                 long bytesToPreallocate,
                                                 int maxBucket,
                                                 MappedFieldType... fieldTypes) throws IOException {
-        /*
-         * Always use the circuit breaking big arrays instance so that the CircuitBreakerService
-         * we're passed gets a chance to break.
-         */
-        BigArrays bigArrays = new MockBigArrays(new MockPageCacheRecycler(Settings.EMPTY), breakerService).withCircuitBreaking();
         MappingLookup mappingLookup = new MappingLookup(
             Mapping.EMPTY,
             Arrays.stream(fieldTypes).map(this::buildMockFieldMapper).collect(toList()),
@@ -274,7 +268,6 @@ public abstract class AggregatorTestCase extends ESTestCase {
             0,
             -1,
             indexSettings,
-            bigArrays,
             bitsetFilterCache,
             fieldDataBuilder,
             null,
@@ -296,6 +289,7 @@ public abstract class AggregatorTestCase extends ESTestCase {
         MultiBucketConsumer consumer = new MultiBucketConsumer(maxBucket, breakerService.getBreaker(CircuitBreaker.REQUEST));
         AggregationContext context = new ProductionAggregationContext(
             queryShardContext,
+            new MockBigArrays(new MockPageCacheRecycler(Settings.EMPTY), breakerService),
             bytesToPreallocate,
             () -> query,
             null,

+ 1 - 2
test/framework/src/main/java/org/elasticsearch/test/AbstractBuilderTestCase.java

@@ -21,6 +21,7 @@ package org.elasticsearch.test;
 
 import com.carrotsearch.randomizedtesting.RandomizedTest;
 import com.carrotsearch.randomizedtesting.SeedUtils;
+
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.util.Accountable;
 import org.elasticsearch.Version;
@@ -41,7 +42,6 @@ import org.elasticsearch.common.settings.IndexScopedSettings;
 import org.elasticsearch.common.settings.Setting;
 import org.elasticsearch.common.settings.Settings;
 import org.elasticsearch.common.settings.SettingsModule;
-import org.elasticsearch.common.util.BigArrays;
 import org.elasticsearch.common.xcontent.NamedXContentRegistry;
 import org.elasticsearch.core.internal.io.IOUtils;
 import org.elasticsearch.env.Environment;
@@ -415,7 +415,6 @@ public abstract class AbstractBuilderTestCase extends ESTestCase {
                 0,
                 0,
                 idxSettings,
-                BigArrays.NON_RECYCLING_INSTANCE,
                 bitsetFilterCache,
                 indexFieldDataService::getForField,
                 mapperService,

+ 1 - 2
x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/security/authz/accesscontrol/DocumentSubsetBitsetCacheTests.java

@@ -30,7 +30,6 @@ import org.elasticsearch.common.CheckedBiConsumer;
 import org.elasticsearch.common.CheckedConsumer;
 import org.elasticsearch.common.logging.Loggers;
 import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.common.util.BigArrays;
 import org.elasticsearch.index.IndexSettings;
 import org.elasticsearch.index.mapper.FieldMapper;
 import org.elasticsearch.index.mapper.KeywordFieldMapper;
@@ -566,7 +565,7 @@ public class DocumentSubsetBitsetCacheTests extends ESTestCase {
             directoryReader = DirectoryReader.open(directory);
             final LeafReaderContext leaf = directoryReader.leaves().get(0);
 
-            final QueryShardContext shardContext = new QueryShardContext(shardId.id(), 0, indexSettings, BigArrays.NON_RECYCLING_INSTANCE,
+            final QueryShardContext shardContext = new QueryShardContext(shardId.id(), 0, indexSettings,
                 null, null, null, mappingLookup, null, null, xContentRegistry(), writableRegistry(),
                 client, new IndexSearcher(directoryReader), () -> nowInMillis, null, null, () -> true, null, emptyMap());
 

+ 2 - 3
x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/security/authz/accesscontrol/SecurityIndexReaderWrapperIntegrationTests.java

@@ -26,7 +26,6 @@ import org.elasticsearch.common.bytes.BytesArray;
 import org.elasticsearch.common.bytes.BytesReference;
 import org.elasticsearch.common.lucene.index.ElasticsearchDirectoryReader;
 import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.common.util.BigArrays;
 import org.elasticsearch.common.util.concurrent.ThreadContext;
 import org.elasticsearch.index.IndexSettings;
 import org.elasticsearch.index.mapper.FieldMapper;
@@ -87,7 +86,7 @@ public class SecurityIndexReaderWrapperIntegrationTests extends AbstractBuilderT
         Client client = mock(Client.class);
         when(client.settings()).thenReturn(Settings.EMPTY);
         final long nowInMillis = randomNonNegativeLong();
-        QueryShardContext realQueryShardContext = new QueryShardContext(shardId.id(), 0, indexSettings, BigArrays.NON_RECYCLING_INSTANCE,
+        QueryShardContext realQueryShardContext = new QueryShardContext(shardId.id(), 0, indexSettings,
                 null, null, null, mappingLookup, null, null, xContentRegistry(), writableRegistry(),
                 client, null, () -> nowInMillis, null, null, () -> true, null, emptyMap());
         QueryShardContext queryShardContext = spy(realQueryShardContext);
@@ -216,7 +215,7 @@ public class SecurityIndexReaderWrapperIntegrationTests extends AbstractBuilderT
         Client client = mock(Client.class);
         when(client.settings()).thenReturn(Settings.EMPTY);
         final long nowInMillis = randomNonNegativeLong();
-        QueryShardContext realQueryShardContext = new QueryShardContext(shardId.id(), 0, indexSettings, BigArrays.NON_RECYCLING_INSTANCE,
+        QueryShardContext realQueryShardContext = new QueryShardContext(shardId.id(), 0, indexSettings,
                 null, null, null, mappingLookup, null, null, xContentRegistry(), writableRegistry(),
                 client, null, () -> nowInMillis, null, null, () -> true, null, emptyMap());
         QueryShardContext queryShardContext = spy(realQueryShardContext);

+ 1 - 2
x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/job/RollupIndexerIndexingTests.java

@@ -32,7 +32,6 @@ import org.elasticsearch.action.search.ShardSearchFailure;
 import org.elasticsearch.common.Rounding;
 import org.elasticsearch.common.time.DateFormatter;
 import org.elasticsearch.common.unit.TimeValue;
-import org.elasticsearch.common.util.BigArrays;
 import org.elasticsearch.index.IndexSettings;
 import org.elasticsearch.index.mapper.ContentPath;
 import org.elasticsearch.index.mapper.DateFieldMapper;
@@ -89,7 +88,7 @@ public class RollupIndexerIndexingTests extends AggregatorTestCase {
     private void setup() {
         settings = createIndexSettings();
         queryShardContext = new QueryShardContext(0, 0, settings,
-            BigArrays.NON_RECYCLING_INSTANCE, null, null, null, null, null, null,
+            null, null, null, null, null, null,
                 null, null, null, null, () -> 0L, null, null, () -> true, null, emptyMap());
     }
 

+ 1 - 5
x-pack/plugin/wildcard/src/test/java/org/elasticsearch/xpack/wildcard/mapper/WildcardFieldMapperTests.java

@@ -43,7 +43,6 @@ import org.elasticsearch.cluster.metadata.IndexMetadata;
 import org.elasticsearch.common.TriFunction;
 import org.elasticsearch.common.settings.Settings;
 import org.elasticsearch.common.unit.Fuzziness;
-import org.elasticsearch.common.util.BigArrays;
 import org.elasticsearch.common.xcontent.XContentBuilder;
 import org.elasticsearch.index.Index;
 import org.elasticsearch.index.IndexSettings;
@@ -77,8 +76,6 @@ import static org.hamcrest.Matchers.equalTo;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-//import org.apache.lucene.util.automaton.RegExp;
-
 public class WildcardFieldMapperTests extends MapperTestCase {
 
     static QueryShardContext createMockQueryShardContext(boolean allowExpensiveQueries, Version version) {
@@ -897,10 +894,9 @@ public class WildcardFieldMapperTests extends MapperTestCase {
             IndexFieldData.Builder builder = fieldType.fielddataBuilder(fieldIndexName, searchLookup);
             return builder.build(new IndexFieldDataCache.None(), null);
         };
-        return new QueryShardContext(0, 0, idxSettings, BigArrays.NON_RECYCLING_INSTANCE, bitsetFilterCache, indexFieldDataLookup,
+        return new QueryShardContext(0, 0, idxSettings, bitsetFilterCache, indexFieldDataLookup,
                 null, null, null, null, xContentRegistry(), null, null, null,
                 () -> randomNonNegativeLong(), null, null, () -> true, null, emptyMap()) {
-
             @Override
             public MappedFieldType getFieldType(String name) {
                 return provideMappedFieldType(name);