-
Notifications
You must be signed in to change notification settings - Fork 24.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BigArrays#newByteArray always uses REQUEST breaker #31435
Comments
Pinging @elastic/es-core-infra |
@s1monw / @danielmitterdorfer - do you agree this is an issue? Daniel, I'm pinging you because in git is looks like you added the IN_FLIGHT_REQUESTS breaker. |
+1 I agree @dakrone WDYT? |
@tbrooks8 the request breaker was added initially before the in flight requests breaker, it was intended for requests that needed to use bigarrays for doing some sort of calculation (like the cardinality aggregation which uses some byte arrays from BigArrays). The in flight breaker is solely for network layer stuff (it could basically be the Personally I think it's nice to have both, since any resources used and released can use the requests breaker, and the in flight request breaker can be solely for network stuff while having different limits. However, I can see how they are close to each other, so if you want to collapse them into the same breaker that'd be fine too (I'd prefer the "REQUESTS" name myself) |
@dakrone - I'm not really suggesting collapsing them. I was just pointing out that right now |
@tbrooks8 yeah if it's possible to change just the one when claiming bytes for serializing network messages, I agree it should be changed to |
This commit modifies BigArrays to take a circuit breaker name and the circuit breaking service. The default instance of BigArrays that is passed around everywhere always uses the request breaker. At the network level, we want to be using the inflight request breaker. So this change will allow that. Additionally, as this change moves away from a single instance of BigArrays, the class is modified to not be a Releasable anymore. Releasing big arrays was always dispatching to the PageCacheRecycler, so this change makes the PageCacheRecycler the class that needs to be managed and torn-down. Finally, this commit closes #31435 be making the serialization of transport messages use the inflight request breaker. With this change, we no longer push the global BigArrays instnace to the network level.
This commit modifies BigArrays to take a circuit breaker name and the circuit breaking service. The default instance of BigArrays that is passed around everywhere always uses the request breaker. At the network level, we want to be using the inflight request breaker. So this change will allow that. Additionally, as this change moves away from a single instance of BigArrays, the class is modified to not be a Releasable anymore. Releasing big arrays was always dispatching to the PageCacheRecycler, so this change makes the PageCacheRecycler the class that needs to be managed and torn-down. Finally, this commit closes elastic#31435 be making the serialization of transport messages use the inflight request breaker. With this change, we no longer push the global BigArrays instnace to the network level.
This commit modifies BigArrays to take a circuit breaker name and the circuit breaking service. The default instance of BigArrays that is passed around everywhere always uses the request breaker. At the network level, we want to be using the inflight request breaker. So this change will allow that. Additionally, as this change moves away from a single instance of BigArrays, the class is modified to not be a Releasable anymore. Releasing big arrays was always dispatching to the PageCacheRecycler, so this change makes the PageCacheRecycler the class that needs to be managed and torn-down. Finally, this commit closes #31435 be making the serialization of transport messages use the inflight request breaker. With this change, we no longer push the global BigArrays instnace to the network level.
When you create a byte array using BigArrays, it always increases the
REQUEST
breaker. TheREQUEST
is described as:However, there is also a
IN_FLIGHT_REQUESTS
breaker. This breaker isdescribed as:
When we serialize a message for writing to a channel in the http or tcp
transports, we use
BigArrays
which manipulates theREQUEST
breaker.However, based on the descriptions, it seems like this should be the
IN_FLIGHT_REQUESTS
breaker.The text was updated successfully, but these errors were encountered: