ChannelPool: least outstanding request algorithm
See original GitHub issueOur ChannelPool
uses a round-robbin approach to selecting a Channel
. It’s effective in most cases, but may cause problems in other cases. A user found that one channel was slow and overloaded and caused various problems a “least outstanding request algorithm” will reduce problems like theirs in the future.
Issue Analytics
- State:
- Created 5 years ago
- Comments:6 (3 by maintainers)
Top Results From Across the Web
Application Load Balancer now supports Least Outstanding ...
Least outstanding requests (LOR) algorithm is now available for Application Load Balancer. This is in addition to the round-robin algorithm ...
Read more >AWS Application Load Balancer algorithms | by Simon Tabor
The most common algorithms are round-robin and least connections, known as Least Outstanding Requests by AWS. Let's take a look at how each...
Read more >Understanding Least Outstanding Requests ALB Load ...
With this algorithm, as the new request comes in, the load balancer will send it to the target with least number of outstanding...
Read more >Load balancing algorithm | Round Robin vs Least outstanding ...
... I am going to explain what are the Load balancing algorithms ... Load balancing algorithm | Round Robin vs Least outstanding requests....
Read more >Target groups for your Application Load Balancers
You can specify the least outstanding requests routing algorithm instead. Consider using least outstanding requests when the requests for your application vary ...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Hi eiiches,
Thanks for sharing! I’ve sketched out an alternative approach here: https://github.com/GoogleCloudPlatform/cloud-bigtable-client/pull/1774.
It should have a lower overhead to maintaining an ordered list of loaded connections while evenly spreading the load across the pool.
Also, GRPC actually has native load balancing , which we will switch to at some point in the future.
Hi, I’ve been in contact with the Japanese support team about the issue.
Here’s my implementation of the algorithm: https://github.com/eiiches/cloud-bigtable-client/commits/feature/least-outstanding-requests-balancing-channel-pool
We’ve load-tested the implementation, and it worked well, but I’m still worried that there may be some corner case that the number of outstanding requests is not correctly incr/decremented.
I can open a PR if you like, but it will probably take some time to sign a Corporate CLA. So I’d also be glad if someone can implement it independently.
All that said, I believe these kind of load balancing algorithms should be ideally provided by gRPC modules to avoid re-implementing it everywhere.