queryCoord的balancer分析

简介: 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方法。

目录
相关文章
|
7月前
|
分布式计算 Hadoop
聊聊 HDFS Balancer负载均衡器
聊聊 HDFS Balancer负载均衡器
|
7月前
|
负载均衡 网络安全
|
3月前
|
负载均衡 算法 前端开发
什么是 Load balancer?
什么是 Load balancer?
81 0
|
4月前
|
负载均衡 算法 前端开发
SLB-负载均衡器(Load Balancer)
SLB-负载均衡器(Load Balancer)
55 0
|
7月前
|
负载均衡
Pgpool-II实现高可用+读写分离+负载均衡(六)---- escalation.sh分析
Pgpool-II的escalation.sh主要用于切换浮动IP,pgpool_remote_start脚本用于启动standby节点,相对比较简单,放在一起了。
328 1
|
10月前
|
域名解析 弹性计算 负载均衡
SLB Server Load Balancer
阿里云负载均衡(Server Load Balancer,简称SLB)是一种可水平扩展的高可用网络负载均衡服务。它可以将流量自动分配到多个ECS实例上,从而提高应用程序的可用性和可扩展性,同时减少了单个实例的负载压力。
119 1
|
域名解析 弹性计算 负载均衡
Application Load Balancer-ALB
简要介绍ALB由来及基础配置操作
|
缓存 Prometheus 监控
Metrics-Server指标获取链路分析
Metrics-server基于cAdvisor收集指标数据,获取、格式化后以metrics API的形式从apiserver对外暴露,核心作用是为kubectl top以及HPA等组件提供决策指标支持。
1630 6
|
缓存 Kubernetes 负载均衡
Kubernetes MetalLB 作为 Load Balancer 上
Kubernetes MetalLB 作为 Load Balancer 上
398 1
Kubernetes MetalLB 作为 Load Balancer 上