Facebooktwittergoogle_plusredditpinterestlinkedinmail

You might get this problem with fielddata size limit. fielddata size limit is checked after the query data is loaded. When your elasticsearch query tried to load data more than the fielddata available memory then you would get the OutOfMemoryException.

Caused by: org.elasticsearch.common.breaker.CircuitBreakingException: Data too large, data for field [parent/child id cache] would be larger than limit of [6620471234/6.3gb]
at org.elasticsearch.common.breaker.MemoryCircuitBreaker.circuitBreak(MemoryCircuitBreaker.java:82) at org.elasticsearch.common.breaker.MemoryCircuitBreaker.addEstimateBytesAndMaybeBreak(MemoryCircuitBreaker.java:132)
at org.elasticsearch.index.fielddata.RamAccountingTermsEnum.flush(RamAccountingTermsEnum.java:70)
at org.elasticsearch.index.fielddata.RamAccountingTermsEnum.next(RamAccountingTermsEnum.java:84)
at org.elasticsearch.index.fielddata.plain.ParentChildIndexFieldData.loadDirect(ParentChildIndexFieldData.java:112)
at org.elasticsearch.index.fielddata.plain.ParentChildIndexFieldData.loadDirect(ParentChildIndexFieldData.java:59)

How to resolve CircuitBreaking Exception??

First try with clear cache for that particular index where you are getting the CircuitBreakingException

$ curl -XPOST 'http://localhost:9200/<Index Name Here>/_cache/clear'

If you are still getting CircuitBreaking Exception then here are the two ways to resolve CircuitBreakingException

1) Adding more node or
2) Increase the amount of heap space (and total RAM) but you should choose it very

If you increase RAM then you can increase the heap size. It’s advisable to assign heap size not more than 50% of available RAM. So now you might have the question how increase heap size will help you to increase the fielddata size limit. So the answer is “The fielddata circuit breaker limits the size of field data to 60% of the heap, by default”.

If you don’t have option and you still want to change default fielddata size limit more than 60%, then here are two ways to do this. 

A) Set fielddata size in elasticsearch.yml but it will require cluster restart.

indices.breaker.fielddata.limit : 70%

B) Increase fielddata limit from live cluster settings. It will not require cluster restart.

curl -XPUT 'http://localhost:9200/_cluster/settings' -d '
{
    "persistent" : {
       "indices.breaker.fielddata.limit" : "70%"
    }
}'

Source: 

https://www.elastic.co/guide/en/elasticsearch/guide/current/_limiting_memory_usage.html

 

CircuitBreaking Exception: Data Too Large for field parent/child id cachehttp://techieroop.com/wp-content/uploads/2015/09/Elasticsearch-Circuit-Breaking-Exception.pnghttp://techieroop.com/wp-content/uploads/2015/09/Elasticsearch-Circuit-Breaking-Exception-150x150.png Roopendra Elasticsearch,
You might get this problem with fielddata size limit. fielddata size limit is checked after the query data is loaded. When your elasticsearch query tried to load data more than the fielddata available memory then you would get the OutOfMemoryException. Caused by: org.elasticsearch.common.breaker.CircuitBreakingException: Data too large, data for field ...
You might get this problem with <strong>fielddata size</strong> limit. <strong>fielddata size</strong> limit is checked after the query data is loaded. When your elasticsearch query tried to load data more than the fielddata available memory then you would get the <strong>OutOfMemoryException</strong>. <pre>Caused by: org.elasticsearch.common.breaker.CircuitBreakingException: Data too large, data for field [parent/child id cache] would be larger than limit of [6620471234/6.3gb] at org.elasticsearch.common.breaker.MemoryCircuitBreaker.circuitBreak(MemoryCircuitBreaker.java:82) at org.elasticsearch.common.breaker.MemoryCircuitBreaker.addEstimateBytesAndMaybeBreak(MemoryCircuitBreaker.java:132) at org.elasticsearch.index.fielddata.RamAccountingTermsEnum.flush(RamAccountingTermsEnum.java:70) at org.elasticsearch.index.fielddata.RamAccountingTermsEnum.next(RamAccountingTermsEnum.java:84) at org.elasticsearch.index.fielddata.plain.ParentChildIndexFieldData.loadDirect(ParentChildIndexFieldData.java:112) at org.elasticsearch.index.fielddata.plain.ParentChildIndexFieldData.loadDirect(ParentChildIndexFieldData.java:59) </pre> <h2>How to resolve CircuitBreaking Exception??</h2> First try with clear cache for that particular index where you are getting the CircuitBreakingException <pre><code>$ curl -XPOST 'http://localhost:9200/<Index Name Here>/_cache/clear'</code></pre> If you are still getting CircuitBreaking Exception then here are the two ways to resolve CircuitBreakingException1) <a href="http://techieroop.com/add-new-node-in-elasticsearch-cluster/" target="_blank">Adding more node</a> or 2) Increase the amount of heap space (and total RAM) but you should choose it very<span style="line-height: 1.5;">If you increase RAM then you can increase the heap size. <span id="GingerWidget-correction-0" class="correction alternate">It's</span> advisable to assign heap size not more than 50% of available RAM. So now you might have the question how <span id="GingerWidget-correction-1" class="correction alternate">increase</span> heap size will help you to increase the <span id="GingerWidget-correction-2" class="correction alternate">fielddata</span> size limit. So <span id="GingerWidget-correction-3" class="correction alternate">the answer</span> is "The <span id="GingerWidget-correction-4" class="correction alternate">fielddata</span> circuit breaker limits the size of <span id="GingerWidget-correction-5" class="correction alternate">field data</span> to 60% of the heap, by default".</span><span style="line-height: 1.5;">If you don't have option and you still want to change default fielddata size limit more than 60%, then here are two ways to do this. </span>A) Set fielddata size in elasticsearch.yml but it will require cluster restart. <pre>indices.breaker.fielddata.limit : 70%</pre> B) Increase fielddata limit from live cluster settings. It will not require cluster restart. <pre>curl -XPUT 'http://localhost:9200/_cluster/settings' -d ' { "persistent" : { "indices.breaker.fielddata.limit" : "70%" } }'</pre><strong>Source: </strong><a href="https://www.elastic.co/guide/en/elasticsearch/guide/current/_limiting_memory_usage.html" target="_blank">https://www.elastic.co/guide/en/elasticsearch/guide/current/_limiting_memory_usage.html</a> 
(Visited 1,219 times, 88 visits today)
Facebooktwittergoogle_pluslinkedinrss