赞
踩
目录
上一篇其实已经说过 standalone 模式,其实集群模式大同小异,只是在不同机子间使用Kafka或者其他消息中间件保证数据及逻辑的一致性。
Log Broker,如Pulsar这样的系统,是专门设计来处理和管理日志数据的中间件。它主要关注于最近发生的变更操作的日志记录,提供日志的流式处理、发布(publish)和订阅(subscribe)服务。有几个关键特性:
在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通过分片、虚拟通道与物理通道的映射、基于主键哈希的路由策略、时间戳服务以及批量处理等技术手段,实现了高效、可扩展且一致的数据处理能力
vchannels(虚拟通道)在Milvus的底层日志代理(Log Broker)节点中被维护。每个vchannel在物理上是不可分割的,并且可以被任何节点使用,但同一时间内只能被一个节点使用。这样的设计有助于管理数据流的分配,并确保数据的完整性和一致性。
当数据摄入率(ingestion rate)达到瓶颈时,需要考虑两个主要因素来优化系统性能:
日志序列写入过程中涉及的四个关键步骤:代理(Proxy)、日志代理(Log Broker)、数据节点(Data Node)和对象存储(Object Storage)。这个过程包括四个主要任务,这些任务被解耦以确保每个任务都由其对应的节点类型处理,从而提高了系统的灵活性和可扩展性。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。