queryCoord的balancer分析

本文涉及的产品
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: queryCoord的balancer分析

queryCoord的balancer分析

milvus版本:v2.3.2

涉及到一个参数设置:

queryCoord.balancer = ScoreBasedBalancer

milvus内置的balancer有3种:

代码位置:internal\querycoordv2\balance\balance.go

var (
    RoundRobinBalancerName    = "RoundRobinBalancer"
    RowCountBasedBalancerName = "RowCountBasedBalancer"
    ScoreBasedBalancerName    = "ScoreBasedBalancer"
)

Balance接口:

type Balance interface {
   
    AssignSegment(collectionID int64, segments []*meta.Segment, nodes []int64) []SegmentAssignPlan
    AssignChannel(channels []*meta.DmChannel, nodes []int64) []ChannelAssignPlan
    BalanceReplica(replica *meta.Replica) ([]SegmentAssignPlan, []ChannelAssignPlan)
}

这个接口有3个实现。

ScoreBasedBalancer、RoundRobinBalancer、RowCountBasedBalancer。

func (controller *CheckerController) check(ctx context.Context, checkerType string) {
   
    checker := controller.checkers[checkerType]
    tasks := checker.Check(ctx)

    for _, task := range tasks {
   
        err := controller.scheduler.Add(task)
        if err != nil {
   
            task.Cancel(err)
            continue
        }
    }
}

checker.Check()有4个实现,会调用AssignSegment、AssignChannel、BalanceReplica方法。

目录
相关文章
|
3月前
|
存储 缓存 调度
EMR Remote Shuffle Service实践问题之优化Master的负载和扩展性如何解决
EMR Remote Shuffle Service实践问题之优化Master的负载和扩展性如何解决
|
4月前
|
负载均衡 监控 算法
|
6月前
|
负载均衡 算法 前端开发
SLB-负载均衡器(Load Balancer)
SLB-负载均衡器(Load Balancer)
159 0
|
负载均衡 应用服务中间件 Nacos
最全解决:微服务之间调用出现Load balancer does not have available server for client
最全解决:微服务之间调用出现Load balancer does not have available server for client
1964 1
最全解决:微服务之间调用出现Load balancer does not have available server for client
|
域名解析 弹性计算 负载均衡
SLB Server Load Balancer
阿里云负载均衡(Server Load Balancer,简称SLB)是一种可水平扩展的高可用网络负载均衡服务。它可以将流量自动分配到多个ECS实例上,从而提高应用程序的可用性和可扩展性,同时减少了单个实例的负载压力。
207 1
|
域名解析 弹性计算 负载均衡
Application Load Balancer-ALB
简要介绍ALB由来及基础配置操作
|
缓存 Prometheus 监控
Metrics-Server指标获取链路分析
Metrics-server基于cAdvisor收集指标数据,获取、格式化后以metrics API的形式从apiserver对外暴露,核心作用是为kubectl top以及HPA等组件提供决策指标支持。
1921 6
|
Kubernetes 网络协议 前端开发
Kubernetes MetalLB 作为 Load Balancer 下
Kubernetes MetalLB 作为 Load Balancer 下
405 1
Kubernetes MetalLB 作为 Load Balancer 下
|
缓存 Kubernetes 负载均衡
Kubernetes MetalLB 作为 Load Balancer 上
Kubernetes MetalLB 作为 Load Balancer 上
532 1
Kubernetes MetalLB 作为 Load Balancer 上