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方法。

目录
相关文章
|
存储 SQL API
milvus insert api流程源码分析
milvus insert api流程源码分析
714 3
|
人工智能 自然语言处理 API
向量检索服务实践测评
向量检索服务是一种基于阿里云自研的向量引擎 Proxima 内核,提供具备水平拓展、全托管、云原生的高效向量检索服务。向量检索服务将强大的向量管理、查询等能力,通过简洁易用的 SDK/API 接口透出,方便在大模型知识库搭建、多模态 AI 搜索等多种应用场景上集成。
139243 5
|
Go API 数据库
milvus的db和collection信息查询
milvus的db和collection信息查询
1678 0
|
开发工具 Python
milvus的delete操作
milvus的delete操作
1767 0
|
监控 算法 Go
Golang深入浅出之-Go语言中的服务熔断、降级与限流策略
【5月更文挑战第4天】本文探讨了分布式系统中保障稳定性的重要策略:服务熔断、降级和限流。服务熔断通过快速失败和暂停故障服务调用来保护系统;服务降级在压力大时提供有限功能以保持整体可用性;限流控制访问频率,防止过载。文中列举了常见问题、解决方案,并提供了Go语言实现示例。合理应用这些策略能增强系统韧性和可用性。
1400 0
|
存储 Linux 数据安全/隐私保护
安装部署milvus单机版(快速体验)
安装部署milvus单机版(快速体验)
4851 0
|
人工智能 运维 NoSQL
Dify x Tablestore 构建低成本、Serverless 知识库
本文介绍如何基于Dify与阿里云Tablestore构建检索增强生成(RAG)系统,解决大模型知识时效性和领域适配性问题,该方案具备低代码、Serverless免运维、高可靠、弹性扩展及低成本等优势。文章通过答疑助手的案例,详细说明了创建Tablestore实例、配置Dify、构建与验证知识库的步骤。
1564 11
Dify x Tablestore 构建低成本、Serverless 知识库
|
存储 NoSQL Java
Tablestore集成MCP协议: 标量与向量混合检索的新范式
基于表格存储(Tablestore)实现的MCP(Model Context Protocol)服务,支持文档存储与混合检索工具两大功能。通过Cherry-Studio界面和通义千问qwen-max模型进行演示,展示了文本数据上传、向量嵌入及查询过程。此外,详细说明了Python和Java版本的本地运行步骤、环境配置及二次开发方法,并提供了集成三方工具如Cherry Studio的应用示例。Tablestore凭借混合查询、Serverless低成本、弹性扩展等优势,为MCP场景提供高效解决方案。
1076 3
|
对象存储
milvus的compaction分析(小文件合并大文件)
milvus的compaction分析(小文件合并大文件)
1448 0
|
存储 算法 数据挖掘
向量数据库技术分享
向量数据库主要用于支持高效的向量检索场景(以图搜图、以文搜图等),通过本次培训可以掌握向量数据库的核心理论以及两种向量索引技术的特点、场景与算法原理,并通过实战案例掌握向量数据库的应用与性能优化策略。
2213 3