I am trying to understand the working of circuit breaker.
I see the default value of "parent-level breaker" is 70% of JVM Heap.
I have set "in flight requests circuit breaker" and "accounting circuit breaker " to 70% of heap.
When I run a query with multiple occurences of wildcards, I see Heap size exceeding the maximum available and cluster reaches red status.
According to my understanding, once the Heap crosses 70%, Circuit Breaker must prevent OOM error.
But I don't see this happening
Is my understanding correct or am I missing something here?
Circuit breakers are a "best effort" protection against a node running out of memory, rather than a guarantee. In released versions the circuit breakers track a number of known memory consumers, but they do not track everything and it is certainly possible to consume too much untracked memory as you seem to be doing.
This changes in 7.0 with the introduction of a real-memory circuit breaker, linked below. Circuit breakers remain a "best effort" protection, but this change improves their accuracy.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.