Milvus核心组件(1)

news2024/9/28 5:35:05

 cluster 模式

上一篇其实已经说过  standalone 模式,其实集群模式大同小异,只是在不同机子间使用Kafka或者其他消息中间件保证数据及逻辑的一致性。

c37e0ea04b7f4afea9703926182e3a8c.png

Log Broker,如Pulsar这样的系统,是专门设计来处理和管理日志数据的中间件。它主要关注于最近发生的变更操作的日志记录,提供日志的流式处理、发布(publish)和订阅(subscribe)服务。有几个关键特性:

  1. 日志管理
    • Log Broker负责收集、存储和管理来自不同数据源(如数据库、消息队列、应用程序等)的日志数据。这些数据通常是关于系统状态变更的记录,比如用户注册、订单创建、数据更新等。
    • 它能够处理大量的日志数据,支持高并发写入,确保数据的一致性和完整性。
  2. 流式输出
    • Log Broker提供流式处理的能力,允许数据以近乎实时的方式被处理和分析。这意味着数据一旦被写入,就可以立即被消费或进一步处理,无需等待全部数据收集完成。
    • 流式处理使得Log Broker非常适合用于实时数据分析、监控和告警等场景。
  3. 发布-订阅服务
    • Log Broker支持发布-订阅模型,允许生产者(producers)发布消息到指定的主题(topics),而消费者(consumers)可以订阅这些主题以接收消息。
    • 这种模型提供了高度的灵活性和可扩展性,因为生产者和消费者可以独立地扩展,而不会影响彼此。
    • 订阅者可以根据需要选择不同的订阅模式,如独占订阅(exclusive subscription)、共享订阅(shared subscription)或故障转移订阅(failover subscription),以满足不同的业务需求。

数据请求处理流程

总流程

9598e61c8e0544f58d27dd3b2f94d7d7.png

在Milvus中,每个Collection可以指定多个分片Shards,每个分片对应一个虚拟通道(vchannel)。这种设计允许系统高效地处理数据,并通过分片来提高并发性和可扩展性。嗯句前面讲的,Milvus在日志代理(Log Broker)中将每个vchannel映射到一个物理通道(pchannel),这样做是为了在底层实现数据的物理存储和管理。

对于插入(Insert)和删除(Delete)等数据修改语言(DML)请求,Milvus采用了基于主键哈希值的分片路由策略。这意味着当一个新的DML请求到达时,系统会计算该请求主键的哈希值,并根据这个哈希值将其路由到相应的分片上。

由于Milvus不支持复杂的事务(Transactions),DML请求的验证被提前到了代理层(Proxy)。代理层会从时间戳服务(TSO,Timestamp Oracle)请求每个DML操作的时间戳。TSO是与根协调器(Root Coordinator)共置的定时模块,负责生成全局一致的时间戳。通过为每个DML请求分配一个时间戳,Milvus能够确定数据处理请求的顺序,即使在高并发场景下也能保证数据的一致性。

此外,为了提高整体吞吐量和避免中央节点过载,代理层会批量地从数据协调器(Data Coordinator)检索信息,包括实体的段(Segments)和主键。这种批量处理的方式减少了与数据协调器的交互次数,从而提高了系统的效率。

总的来说,Milvus通过分片、虚拟通道与物理通道的映射、基于主键哈希的路由策略、时间戳服务以及批量处理等技术手段,实现了高效、可扩展且一致的数据处理能力

逻辑channel 到物理channel

683d35cc6c3e49d1a6b8102de5519816.png

 

vchannels(虚拟通道)在Milvus的底层日志代理(Log Broker)节点中被维护。每个vchannel在物理上是不可分割的,并且可以被任何节点使用,但同一时间内只能被一个节点使用。这样的设计有助于管理数据流的分配,并确保数据的完整性和一致性。

当数据摄入率(ingestion rate)达到瓶颈时,需要考虑两个主要因素来优化系统性能:

  1. 日志代理节点的负载情况
    • 检查日志代理节点是否过载。如果节点负载过高,可能是因为单个节点处理的数据量超过了其处理能力。在这种情况下,可以考虑增加日志代理节点的数量来进行水平扩展(scaling out)。通过增加节点,可以将数据处理的负载分散到更多的节点上,从而提高整体的数据处理能力。
  2. 分片的数量
    • 另一个关键因素是检查是否有足够的分片来确保每个节点的负载均衡。如果分片数量不足,可能会导致某些节点承载了过多的数据处理任务,而其他节点则相对空闲。为了解决这个问题,可以增加集合中的分片数量,以便更均匀地分配数据到各个节点上。这样做可以提高系统的并行处理能力,并减少因单个节点过载而导致的性能瓶颈。

 

数据维护流程

f1674cf5c68c437bbbbf00cdc449b0b8.png

日志序列写入过程中涉及的四个关键步骤:代理(Proxy)、日志代理(Log Broker)、数据节点(Data Node)和对象存储(Object Storage)。这个过程包括四个主要任务,这些任务被解耦以确保每个任务都由其对应的节点类型处理,从而提高了系统的灵活性和可扩展性。

  1. DML请求验证
    • 这一任务由代理节点(Proxy)负责。由于Milvus不支持复杂的事务,DML请求的验证被提前到了代理层。代理会检查请求的有效性,并为其请求时间戳服务(TSO)以获取全局一致的时间戳。时间戳用于确定数据请求的处理顺序,确保数据的一致性和并发控制。
  2. 日志序列的发布-订阅
    • 日志代理节点(Log Broker)负责处理日志序列的发布和订阅。当DML请求通过验证后,代理会将请求转发给日志代理节点。日志代理节点将请求转换成日志序列,并管理这些日志序列的发布和订阅。这样,数据节点可以订阅它们感兴趣的日志序列,以便进行后续的数据处理。
    • 应该说从log broker 中发布的订阅消息有很多种,其中 data node 关心的只是DML 与 DDL 相关的,因为这里主要是想描述数据请求,所以其他的就没有绘制。
  3. 从流式日志到日志快照的转换
    • 数据节点(Data Node)负责将从日志代理接收到的流式日志转换成日志快照。日志快照是数据在特定时间点的静态表示,它们被用于数据的持久化和恢复。通过转换流式日志为日志快照,数据节点可以更有效地管理和访问数据。
  4. 日志快照的持久化
    • 最后,日志快照被持久化到对象存储(Object Storage)中。对象存储是一种高可靠、可扩展的存储解决方案,适用于存储大量数据。通过将日志快照存储在对象存储中,Milvus可以确保数据的长期保存和可访问性,即使在系统故障或灾难恢复时也能快速恢复数据。
    • 需要注意 一个collection实际可以有多个segments 进行存储,查找collection的过程,其实是定位返回多个segments的过程。
    • b72f6414619246e18482233eb0443ef1.png
    • 这里解释下索引:Milvus 是一个为向量数据设计的分布式向量数据库,它支持对向量字段、标量字段和主键字段建立索引。这种索引机制在数据处理和查询优化方面起着关键作用,特别是在处理大规模、高维数据时。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1914218.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows10开启防火墙,增加入站规则后不生效,还是不能访问后端程序

一、背景: 公司护网要求开启防火墙,开启防火墙后,前后端分离的项目调试受影响,于是增加入站规则开放固定的后台服务端口,增加的mysql端口3306和redis端口6379,别人都可以访问,但是程序的端口808…

AMEYA360:国民技术推出多款高能专用MCU产品

2024年7月8日,国民技术推出多款高能专用MCU产品。N32H482(通用控制)、N32H487(高性能互联)、N32GH473(电机控制)、N32H474(数字电源控制)四大系列高性能MCU新品,以及基于Arm Cortex M0内核实现的N32G052系列高性价比通用MCU新品。 全新一代高性能MCU新品…

JavaSE 面向对象程序设计进阶 IO流 字符输入输出流及底层原理

目录 字符输入流FileReader 空参的read方法 带参的read方法 字符输出流FileWriter 字符输入流底层原理 字符输出流底层原理 字符输入流FileReader 输入流 一次读一个字节 遇到中文时 一次读多个字节 输出流 底层会把数据按照指定的编码方式进行编码 在变成直接写到文件当…

企业化运维(7)_Zabbix企业级监控平台

官网:Zabbix :: The Enterprise-Class Open Source Network Monitoring Solution ###1.Zabbix部署### (1)zabbix安装 安装源 修改安装路径为清华镜像 [rootserver1 zabbix]# cd /etc/yum.repos.d/ [rootserver1 yum.repos.d]# vim zabbix.r…

SAP与易链SRM系统集成案例

一、项目环境 重庆润通控股(集团)有限公司成立于2007年,是一家集合汽柴油动力及终端、摩托车、储能电源、汽车零部件、金融服务等产业的多元化集团公司。现拥有员工超4000人,业务遍布全球80多个国家及地区,2021年营…

CDGA|数据治理:如何建立健全数据伦理和隐私保护机制?

随着数字化时代的到来,数据已成为推动社会进步和企业发展的重要资源。然而,随之而来的数据伦理和隐私保护问题也日益凸显。建立健全的数据治理体系,特别是强化数据伦理和隐私保护机制,已成为当务之急。 数据治理的重要性 数据治理…

GeoServer property 表达式注入代码执行漏洞(CVE-2024-36401)

GeoServer property 表达式注入代码执行漏洞(CVE-2024-36401) 1.漏洞描述 GeoServer 是一个开源的服务器软件,使用 Java 编写,主要功能是允许用户共享和编辑地理空间数据。它在设计时就考虑到了互操作性,支持使用开放标准来发布多种主流格式…

从新手到高手:Scala函数式编程完全指南,Scala IF…ELSE 语句(8)

1、Scala IF…ELSE 语句 Scala IF…ELSE 语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。 可以通过下图来简单了解条件语句的执行过程: 1.1、if 语句 if 语句有布尔表达式及之后的语句块组成。 语法 if 语句的语法格式如下&…

After Detailer让图像自动修复

After Detailer(简称adetailer)是一个Stable Diffusion的自动Web-UI扩展,它能够自动化修复图像中的不完整部分,例如模糊的人脸等常见问题。在这篇文章中,你将了解它的工作原理、如何使用它,以及一些常见的使…

@RequestPart 与 @RequestBody、@RequestParam 注解的异同点

前言 RequestPart 注解是我们在JavaEE 开发中,比较常见的一个注解。它经常会与 RequestBody 、RequestParam 注解进行比较,这篇博文我们以案例和源码相结合,分析这几个注解的异同点。 案例演示 创建实体类 User Data NoArgsConstructor A…

图片海报怎么做成二维码展示?二维码分享图片的制作技巧

怎么把图片的宣传海报做成二维码呢?在做活动或者产品宣传时,都会制作精美的图片海报,除了打印传单或者制作展板的方式来展示外,将海报图片生成二维码,通过分享二维码来实现图片海报的快速传播,能够有效提升…

[数据结构] 基于插入的排序 插入排序希尔排序

标题:[数据结构] 排序#插入排序&希尔排序 水墨不写bug 目录 (一)插入排序 实现思路: 插入排序实现: (二)希尔排序 希尔排序的基本思想: 希尔排序的实现: 正…

【转】-java多线程读写锁ReadWriteLock

Java多线程中读写锁ReadWriteLock的使用 该博客转载自​**lavimer​的​Java多线程中读写锁ReadWriteLock的使用** 1. 概念 读写锁分为读锁和写锁,多个读锁之间是不需要互斥的(读操作不会改变数据,如果上了锁,反而会影响效率),…

IPXProxy海外代理IP在MultiLogin指纹浏览器中的配置教程

Multilogin指纹浏览器是一款付费浏览器,它为用户提供了拥有多个虚拟浏览器配置文件的机会。作为最好的指纹浏览器之一,它常常被用来创建或管理多个账户,当然在这个过程,代理IP是不可或缺的一部分。下面给大家代理在MultiLogin指纹…

【企业级监控】Docker部署Zabbix与监控主机

基于Docker部署Zabbix6.2 文章目录 基于Docker部署Zabbix6.2资源列表基础环境一、首先安装Docker1.1、部署Docker1.2、配置Docker加速器 二、部署Zabbix组件介绍三、部署Zabbix3.1、安装数据库容器3.2、安装zabbix-java-gateway3.3、安装zabbix-server3.4、安装zabbix-web界面3…

大数据下的用户研究:深度洞察与精准决策的引擎

文章目录 一、大数据时代的用户研究新机遇二、大数据用户研究的流程与关键技术三、大数据用户研究的实践案例四、大数据用户研究的挑战与展望《用户研究方法:卓越产品和服务的用户研究技巧》内容及特色读者对象 在当今这个数据爆炸的时代,大数据已成为推…

microblaze时钟更改出现时序问题

在使用microblaze时,我给的时钟是200MHz的时钟,但会在跑布线的时候出现时序上的问题,一开始是没有任何的头绪,知道我尝试更改时钟的频率才发现问题的所在。 当我把200MHz的时钟改为100MHz的时钟时,就不会出现时序上的…

Defensor 4.5:构建数据资产为中心的安全运营体系

5月31日“向星力”未来数据技术峰会上,星环科技重磅发布数据安全管理平台 Defensor 4.5版本。新版本引入了以数据资产为中心的数据安全运营体系,通过智能化大模型技术,帮助企业快速、精准地识别核心重要资产;建设全局的数据安全策…

全球数字贸易中心解析_保税区保的是什么税_为什么保税区还要交税

保税区税收机制深度解析:保税免的是什么税?为何仍需缴税? 保税区概述 保税区,作为海关特殊监管区域的重要一环,享有国家高度开放的政策优惠与功能齐全的海关监管服务。它专为保税加工、保税物流和保税服务而设&#…