-
Notifications
You must be signed in to change notification settings - Fork 3.8k
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
Change Round Robin and WeightedRoundRobin into petiole policies #10528
Conversation
@ejona86 do you have time to review? I have limited capacity so I would be very slow here. |
I'm unlikely to get to it before Tuesday, but I can take a look. |
Blocking can be confused with the blocking stub, which is unrelated. I'm purposefully not saying "it is used only for X," as that isn't what we need from the API. But it is still helpful to users to describe the sorts of things that use it. Fixes grpc#10508
Fixes grpc#10474 and b/273930962
When a memory leak occurs, it is really helpful to have access records to understand where the buffer was being held when it leaked. retain() when we create the NettyReadableBuffer already creates an access record the ByteBuf, so here we track when the ByteBuf is passed to another thread. See grpc#8330
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't review the original PR that introduced MultiChildLoadBalancer
so some of my questions may be a bit ignorant and answered elsewhere, but humor me :-)
PR is pretty big with lot of intricate logic, so it was hard to wrap my brain around everything. Might still need to look at some things, but here's at least my initial thoughts.
xds/src/main/java/io/grpc/xds/WeightedRoundRobinLoadBalancer.java
Outdated
Show resolved
Hide resolved
Since 3b61799 OkHttp can support Grpc.newServerBuilderForPort().
Java 20+ don't support --release 7, so we just will use the default (8).
…ildren just to immediately delete them.
AndroidComponentAddress now accepts an Intent with merely a package restriction, not a full ComponentName. This lets clients avoid hard coding Service class names that they don't control. Fixes grpc#9062
It is slow, and just tries a bunch of possibilities. Leave it around for developers to run locally, but it isn't precise enough to run on every build. This change reduces the build of servlet in isolation by 1 minute. I suspect the gains are larger in a full grpc build because it is very CPU-intensive; it uses 600% CPU on my 8-thread CPU when running by itself.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Check out the compile error in the Android build though.
…ildren just to immediately delete them.
…es (grpc#10528)" This reverts commit e1334ea.
…es (grpc#10528)" This reverts commit e1334ea.
…#10528) * Change Round Robin and WeightedRoundRobin into petiole policies
…es (grpc#10528)" (grpc#10575) This reverts commit e1334ea.
Update MultiChildLoadBalancer to support changes needed for WRR.
Move deletion timer from MultiChildLoadBalancer back to ClusterManagerLoadBalancer as it only applies in the xds cluster case.
Add a generic Helper class for testing so that the mocks can delegate to it instead of complex when clauses. Not only simpler, but allows debugging.