question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

ChannelPool: least outstanding request algorithm

See original GitHub issue

Our 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:closed
  • Created 5 years ago
  • Comments:6 (3 by maintainers)

github_iconTop GitHub Comments

1reaction
igorbernstein2commented, Mar 30, 2018

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.

1reaction
eiichescommented, Mar 30, 2018

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.

Read more comments on GitHub >

github_iconTop 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 >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found