// I will look into doing this in a follow up. Doing everything using a background thread heavily
// PriorityUpdateCb can fire before initialize() during batch host updates, while MemberUpdateCb
ThreadAwareLoadBalancerBase::LoadBalancerImpl::chooseHost(LoadBalancerContext* context) {
LoadBalancerBase::choosePriority(h, *healthy_per_priority_load_, *degraded_per_priority_load_)
LoadBalancerPtr ThreadAwareLoadBalancerBase::LoadBalancerFactoryImpl::create(LoadBalancerParams) {
// (this technique is as described in the paper https://arxiv.org/abs/1908.08762 - the random jump
// When a host is overloaded, we choose the next host in a random manner rather than picking the
TypedHashLbConfigBase::TypedHashLbConfigBase(absl::Span<const HashPolicyProto* const> hash_policy,
absl::Status TypedHashLbConfigBase::validateEndpoints(const PriorityState& priorities) const {
// Sum should be at most uint32_t max value, so we can validate it by accumulating into uint64_t