java.lang.Object
org.elasticsearch.compute.data.LocalCircuitBreaker
- All Implemented Interfaces:
Closeable,AutoCloseable,CircuitBreaker,org.elasticsearch.core.Releasable
public final class LocalCircuitBreaker
extends Object
implements CircuitBreaker, org.elasticsearch.core.Releasable
Requesting and returning memory from a
CircuitBreaker can be costly due to the involvement of read/write
on one or several atomic longs. To address this issue, the local breaker adopts a strategy of over-requesting memory,
utilizing the reserved amount for subsequent memory requests without direct access to the actual breaker.- See Also:
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from interface org.elasticsearch.common.breaker.CircuitBreaker
CircuitBreaker.Durability, CircuitBreaker.Type -
Field Summary
Fields inherited from interface org.elasticsearch.common.breaker.CircuitBreaker
FIELDDATA, IN_FLIGHT_REQUESTS, PARENT, REQUEST -
Constructor Summary
ConstructorsConstructorDescriptionLocalCircuitBreaker(CircuitBreaker breaker, long overReservedBytes, long maxOverReservedBytes) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddEstimateBytesAndMaybeBreak(long bytes, String label) voidaddWithoutBreaking(long bytes) voidcircuitBreak(String fieldName, long bytesNeeded) voidclose()longgetLimit()getName()doublelonglonggetUsed()voidsetLimitAndOverhead(long limit, double overhead) toString()
-
Constructor Details
-
LocalCircuitBreaker
public LocalCircuitBreaker(CircuitBreaker breaker, long overReservedBytes, long maxOverReservedBytes)
-
-
Method Details
-
circuitBreak
- Specified by:
circuitBreakin interfaceCircuitBreaker
-
addEstimateBytesAndMaybeBreak
- Specified by:
addEstimateBytesAndMaybeBreakin interfaceCircuitBreaker- Throws:
CircuitBreakingException
-
addWithoutBreaking
public void addWithoutBreaking(long bytes) - Specified by:
addWithoutBreakingin interfaceCircuitBreaker
-
parentBreaker
-
getUsed
public long getUsed()- Specified by:
getUsedin interfaceCircuitBreaker
-
getLimit
public long getLimit()- Specified by:
getLimitin interfaceCircuitBreaker
-
getOverhead
public double getOverhead()- Specified by:
getOverheadin interfaceCircuitBreaker
-
getTrippedCount
public long getTrippedCount()- Specified by:
getTrippedCountin interfaceCircuitBreaker
-
getName
- Specified by:
getNamein interfaceCircuitBreaker
-
getDurability
- Specified by:
getDurabilityin interfaceCircuitBreaker
-
setLimitAndOverhead
public void setLimitAndOverhead(long limit, double overhead) - Specified by:
setLimitAndOverheadin interfaceCircuitBreaker
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceorg.elasticsearch.core.Releasable
-
toString
-