暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
Manu:一个云原生向量数据库管理系统_(中文翻译版).pdf
678
14页
19次
2022-10-18
免费下载
3548
Manu:一个云原生向量数据库管理
郭、滦小凡、龙翔、小燕、小一、罗日高
†§
程莎桂、徐伟志
罗家瑞
,弗兰克刘
曹贞贞
乔彦良
王挺
波唐沙桂,谢查尔斯
南方科技大学慕尼黑技术大学
{firstname.lastname}@zilliz.com
‡ {xiangl3@mail., yanx@, 11911419@mail., tangb3@}sustech.edu.cn
§
jigao.luo@tum.de
摘要
随着基于学习的嵌入模型的发展,嵌入向量被广泛应用于非结构
化数据的分析和搜索。由于向量收集超过十亿规模,需要完全管
理和水平可伸缩的向量数据库。在过去的三年里,通过与我们的
1200名+行业用户的交互,我们为下一代向量数据库应该拥有的
特性勾画了一个愿景,包括长期的可进化性、可调的一致性、良
好的弹性和高性能。
我们提供了Manu,一个实现这些特性的云原生向量数据库。如
果我们遵循传统的DBMS设计规则,那么很难集成所有这些特性。
由于大多数向量数据应用程序不需要复杂的数据模型和强大的数
据一致性,我们的设计理念是放松数据模型和一致性约束,以换
取上述特性。具体来说,Manu首先公开了预写日志(WAL)和
binlog作为骨干服务。其次,写组件被设计为日志发布器,而所
有的只读分析和搜索组件都被设计为日志服务的独立订阅者。最
后,我们利用多版本并发控制(MVCC)和增量一致性模型来简化
系统组件之间的通信和协作。这些设计实现了系统组件之间的低
耦合,这对弹性和演化至关重要。我们还通过具有硬件感知的实
现和支持复杂的搜索语义来广泛优化Manu的性能和可用性。Manu
已被用于许多应用程序,包括,但不限于,推荐、多媒体、语言
、医学和安全。我们在三个典型的应用场景中评估了Manu,以演
示其效率、弹性和可伸缩性。
PVLDB参考格式:
郭仁通、滦小凡、龙翔、小燕、易小孟、罗日高、程启雅、徐伟志、罗家
瑞、刘伟郎、曹珍山、乔阎良、王婷、唐波、谢查理。Manu:一个云原生
向量数据库管理系统。PVLDB, 15(12): 3548 - 3561,
2022.doi:10.14778/3554821.3554843
*
合著者按字母顺序排列。
与齐利兹一起工作时完成的工作,通信给唐波。
该作品在知识共享BY-NC-ND 4.0国际版下获得授权
许可证。请访问https://creativecommons.org/licenses/by-nc-nd/4.0/以查看此
许可证的副本。对于本许可范围以外的任何用途,请通过电子邮件向info@vldb.org
获得许可。版权由所有者/作者所有。出版权
授权给VLDB基金会。
《VLDB捐赠基金的诉讼程序》,第1卷。15, No.12 ISSN 2150-8097。
doi:10.14778/3554821.3554843
PVLDB工件可用性
源代码、数据和/或其他工件已在
https://github.com/milvus-io/milvus/tree/2.0.
1介绍
根据IDC的数据,在2020年生成的4万eb字节的新数据中,文本、
图像和视频等非结构化数据约占80%,由于人工生成的富媒体[47]
数量的增加,其比例持续上升。随着基于学习的嵌入模型的兴起
,特别是深度神经网络,利用嵌入向量来管理非结构化数据已经
在电子商务、社交媒体和药物发现[48,62,67]等许多应用中变得
很普遍。这些应用程序的一个核心特性是,它们将非结构化数据
的语义编码为一个高维向量空间。考虑到嵌入向量的表示能力,
可以通过基于相似度的向量搜索来实现推荐、搜索和向量搜索等
操作。为了支持这些应用程序,许多专门的向量数据库都是这样
做的
用于管理向量数据的构建[10、12、17-19、80]。
在2019年,我们开放了Milvus [80],我们之前的向量数据-
基地,隶属于LF人工智能与数据基金会。从那时起,我们收集
从1200多个行业用户的反馈中发现,Milvus所采用的一些设计原
则并不合适。Milvus遵循了关系数据库的设计原则,这些数据库
针对事务[51]或分析[80]工作负载进行了优化,并专注于功能支
持(e。g., 属性过滤和多向量搜索)和执行效率(例如,SIMD和
缓存优化)。然而,矢量数据库应用程序在以下三个方面有不同
的需求,这促使我们从头开始重组Manu,重点关注云本地架构。
不需要支持复杂的事务。基于学习的模型不是将实体表示分解为
单个向量,而不是将复杂的混合数据语义编码为不同的字段或
表。因此,不需要多行或多表事务;行级的ACID对于大多数向
量数据库应用程序来说就足够了。
可调的性能一致性权衡是很重要的。不同的用户有不同的一致性
要求;一些用户更喜欢高吞吐量和最终的一致性,而另一些用
户则需要一定程度的保证一致性,即,新插入的数据应该立即
或在预先配置的时间内对查询可见。传统的关系数据库通常支
持强一致性或最终一致性;这些数据库之间几乎没有定制的空
3549
两个极端。因此,可调谐的一致性是云原生向量数据库的一个
关键属性。
较高的硬件成本需要具有细粒度的弹性。一些向量数据库操作(
例如,向量搜索和索引构建)是计算密集型的,而硬件加速器
(e。g.gpu或fpga)和/或一个大的工作内存需要良好的性能。
但是,根据应用程序类型的不同,数据库功能之间的工作负载
会有所不同。因此,如果向量数据库没有细粒度的弹性,那么
资源可能会被浪费或分配不当。这就需要仔细地将功能层和硬
件层解耦;系统级别的解耦,如读写逻辑的分离是不够的,弹
性和资源隔离应该在功能级别而不是系统级别进行管理。
总之,现代向量数据库应该具有可调谐的一致性、功能级的解
耦和每个组件的可伸缩性。遵循传统关系数据库的设计原则使得
实现这些设计目标变得非常困难,如果不是不可能的话。实现这
些设计目标的一个关键机会在于放松交易复杂性的可能性。
Manu遵循“以日志作为数据”的范式。具体来说,Manu将整个
系统构建为一组日志发布/订阅微服务。预写日志(WAL)和组件
间的消息以“日志”的形式发布,即可以订阅的持久数据流。读
取端组件,如搜索和分析引擎,都是作为日志订阅者构建的。该
体系结构提供了一种简单而有效的方法来解耦系统功能;它支持
读与写、无状态与有状态、存储与计算的解耦。每个日志条目都
被分配了一个全局唯一的时间戳,并且被称为时间标记的特殊日
志条目(类似于ApacheFlicelink[25]中的水印)被定期插入到每
个日志通道中,为日志订阅者发送事件时间的进展。时间戳和时
间标记构成了可调谐的一致性机制和多版本一致性控制(MVCC)
的基础。为了控制一致性级别,用户可以指定查询的时间戳和订
阅者使用的最新时间标记之间的一个可容忍的时间延迟。
此外,我们还广泛地优化了Manu的性能和可用性。Manu支持向
量搜索的各种索引,包括向量量化[21,33,36,82]、反向索引[23]
和接近图[32]。特别是,我们定制了实现,以更好地利用现代
cpu和gpu的并行化能力,以及ssd比hdd改进的读/写速度。Manu
还集成了来自Milvus [80]的重构功能,如属性过滤和多向量搜
索。此外,构建一个可视化工具,允许用户实时跟踪Manu的性能
,并包括一个自动配置工具,推荐使用机器学习索引算法参数。
综上所述,本文的贡献如下:
我们总结了通过与他人交流而得到的经验教训
在三年内拥有1200名行业用户。我们阐明了向量数据库的典型
应用需求,并展示了它们与传统关系数据库的不同。然后,我
们概述了矢量数据库应该满足的关键设计目标。
我们将Manu的关键架构设计作为云原生向量数据库,围绕放松事
务复杂性的核心设计理念,以换取可调的一致性和细粒度弹性
我们提出了重要的可用性和与性能相关的增强,e。g., 高级API
、GUI工具、自动参数配置和SSD支持。
本文的其余部分组织如下。第2节提供了关于载体数据库的需
求和设计目标的背景知识。第三节深入探讨了马努的设计。第4
节强调了可用性和性能的关键特性。第5节讨论了Manu的代表性
用例。第六节审查相关工作。第7节总结了论文,并概述了未来
的工作。
2背景和动机
将视频推荐视为向量数据库的一个典型用例。其目标是帮助用户
根据个人偏好和以前的浏览历史发现新的视频。使用机器学习模
型(特别是深度神经网络),用户和视频的特征,如搜索历史、
观看历史、年龄、性别、视频语言和标签被转换为嵌入向量。这
些模型经过精心设计和训练,以将用户和视频向量之间的相似性
编码到一个共同的向量空间。推荐是通过对指定用户向量的相似
度评分从视频向量集合中检索候选视频来进行的。当新视频更新
、删除部分视频、改变嵌入模型时,系统还需要处理向量的更新
载体数据库的视频推荐和其他应用可以涉及数千亿次的载体,
每天以数亿次的规模增长,并为每秒提供数百万次规模的查询(
QPS)。现有的dbms(例如,关系数据库[9,11]、NoSQL [75,85]
、NewSQL [39,73])没有构建来管理该规模的向量数据。此外,
它们的应用程序的底层数据管理需求与矢量数据库应用程序有很
大的不同。 首先,与关系数据库相比,向量数据库的体系结构
和理论还远未成熟。这样做的一个关键原因是,AIand数据驱动
的应用程序仍然处于不断发展的状态,因此也需要继续对向量数
据库进行架构和功能更改。
其次,矢量数据库不需要进行复杂的事务。在上面的示例中,
推荐系统将用户和视频的所有任务特征编码为独立的向量,而不是
在关系数据库中的多行或多列实体字段。因此,行级ACID就足够了
;多表选择(如连接)是不必要的。
第三,矢量数据库应用程序需要一个灵活的性能、经济一致性
的权衡。虽然有些应用程序采用了强的或最终的一致性模型,但
也有一些应用程序介于这两个极端之间。用户可能希望放松一致
性约束,以换取更好的系统吞吐量。在视频推荐示例中,在几秒
钟后观察新上传的视频是可以接受的,但让用户等待推荐会损害
用户体验。因此,该应用程序可以配置
of 14
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜