# Elasticsearch aggregation and multiple sub aggregation memory issue

**URL:** https://discuss.elastic.co/t/elasticsearch-aggregation-and-multiple-sub-aggregation-memory-issue/40430
**Category:** Elasticsearch
**Created:** [January 29, 2016, 3:43am UTC](https://discuss.elastic.co/t/elasticsearch-aggregation-and-multiple-sub-aggregation-memory-issue/40430 "2016-01-29T03:43:21Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![PureAwesome](https://avatars.discourse-cdn.com/v4/letter/p/919ad9/32.png) [@PureAwesome](https://discuss.elastic.co/u/PureAwesome)
#### Post date: [January 29, 2016, 3:43am UTC](https://discuss.elastic.co/t/elasticsearch-aggregation-and-multiple-sub-aggregation-memory-issue/40430/1 "2016-01-29T03:43:21Z")

</div>

I only have 81,000 docs, 26mb size, 1 index and 2 shards. The index metadata mapping fields are just flat listed, no nested fields.  
fielddata memory\_size\_in\_bytes: 2179736

The following query keep causing circuit breaker request time OOM exception:  
`org.elasticsearch.transport.RemoteTransportException: [DataTwo][inet[/127.0.0.1:9302]][indices:data/read/search[phase/query]] Caused by: org.elasticsearch.common.breaker.CircuitBreakingException: [REQUEST] Data too large, data for [<reused_arrays>] would be larger than limit of [304113254/290mb] at org.elasticsearch.common.breaker.ChildMemoryCircuitBreaker.circuitBreak(ChildMemoryCircuitBreaker.java:97) at org.elasticsearch.common.breaker.ChildMemoryCircuitBreaker.addEstimateBytesAndMaybeBreak(ChildMemoryCircuitBreaker.java:148) at org.elasticsearch.common.util.BigArrays.adjustBreaker(BigArrays.java:398) at org.elasticsearch.common.util.BigArrays.validate(BigArrays.java:435) at org.elasticsearch.common.util.BigArrays.newByteArray(BigArrays.java:460) at org.elasticsearch.common.util.BigArrays.newByteArray(BigArrays.java:468) at org.elasticsearch.search.aggregations.metrics.cardinality.HyperLogLogPlusPlus.<init>(HyperLogLogPlusPlus.java:170) ... [2016-01-28 17:17:25,334][WARN][transport.netty] [NoData] Message not fully read (response) for [16190] handler org.elasticsearch.search.action.SearchServiceTransportAction$6@1f8eb399, error [false], resetting`

Can anyone help me take a look to this query builder and help me optimize it? Can someone also tell me why the collection model "breath\_first" doesn't make difference to "depth\_first".

`  
final FilterBuilder filterBuilder = termFilter("month", getMostRecentMonthToQuery(indexId));

```
final String revenueScript = getRevenueScript(revenueModifier);

final String sortString = convertTermSortToAggregationSort(sortColumn);
final boolean isAscending = sortOrder.equalsIgnoreCase("asc");
final SubAggCollectionMode aggCollectionMode = SubAggCollectionMode.parse("breadth_first");

final SearchRequestBuilder builder = elasticSearchClient.prepareSearch(indexId)
        .setTypes(TYPE_NAME)
        .setQuery(QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(), filterBuilder))
        .addAggregation(AggregationBuilders.terms("carCount")
            .field(CAR_RAW)
            .size(pageSize)
            .order(Terms.Order.aggregation(sortString, isAscending))
            .collectMode(aggCollectionMode)
            .subAggregation(AggregationBuilders.terms("partProviderCount")
                .field(PART_PROVIDER_RAW)
                .size(0)
            )
            .subAggregation(AggregationBuilders.cardinality("partCount")
                .field(PART_NUMBER_RAW)
                .precisionThreshold(40000)
            )
            .subAggregation(AggregationBuilders.avg(IGPART_AGG_NAME)
                .field(IGPART_TERM_NAME)
            )
            .subAggregation(AggregationBuilders.avg(CGPART_AGG_NAME)
                .field(CGPART_TERM_NAME)
            )
            .subAggregation(AggregationBuilders.avg(OGPART_AGG_NAME)
                .field(OGPART_TERM_NAME)
            )
            .subAggregation(AggregationBuilders.avg(CPPART_AGG_NAME)
                .field(CPPART_TERM_NAME)
            )
            .subAggregation(AggregationBuilders.sum(IGPART_PRICE_AGG_NAME)
                .field(IGPART_TERM_NAME)
                .script(revenueScript)
            )
            .subAggregation(AggregationBuilders.sum(CGPART_PRICE_AGG_NAME)
                .field(CGPART_TERM_NAME)
                .script(revenueScript)
            )
            .subAggregation(AggregationBuilders.sum(OGPART_PRICE_AGG_NAME)
                .field(OGPART_TERM_NAME)
                .script(revenueScript)
            )
            .subAggregation(AggregationBuilders.sum(CPPART_PRICE_AGG_NAME)
                .field(CPPART_TERM_NAME)
                .script(revenueScript)
            )
        );
return builder;

```

`

---

<div class="post-metadata">

### Author: ![bsandeep](https://avatars.discourse-cdn.com/v4/letter/b/85e7bf/32.png) [@bsandeep](https://discuss.elastic.co/u/bsandeep)
#### Post date: [August 30, 2016, 2:54pm UTC](https://discuss.elastic.co/t/elasticsearch-aggregation-and-multiple-sub-aggregation-memory-issue/40430/2 "2016-08-30T14:54:24Z")

</div>

I'm also getting same exception. Did you get any solution for this?

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [July 5, 2017, 10:24pm UTC](https://discuss.elastic.co/t/elasticsearch-aggregation-and-multiple-sub-aggregation-memory-issue/40430/3 "2017-07-05T22:24:00Z")

</div>


