一、前言
对象存储是一种无层次结构的数据存储方法,通常在云中使用。与其他数据存储方法不同,基于对象的存储不使用目录树。离散的数据单元(对象)存在于存储池中的同一级别。每个对象都有一个唯一的标识名称,客户端使用其来检索它。此外,每个对象都可能具有与其一起检索的元数据。
2006年, 美国Amazon公司发布AWS S3(Simple Storage Service)服务,正式将对象存储作为一项云存储服务,引入云计算领域。 UCloud优刻得则在发展过程中,也自研了对象存储服务US3, 以满足国内外客户的存储需求。
二、US3元数据服务的挑战
目前US3元数据服务支持了EB级存储规模,存储了超过千亿级别的文件索引。需要面临每日数十亿次索引访问, 文件上传请求,以及数亿次文件删除请求带来的索引更新压力, 同时客户大量的对象列表请求,也带来了极大的索引范围扫描挑战。
在之前的元数据服务架构中,UCloud优刻得采用了业内流行的MongoDB作为底层数据存储,同时辅以外部服务做数据路由、监控统计,很好地满足了客户数据存储需求。同时部署简单,设计上也有一定的可扩展性。但随着客户数量以及存储数据量的爆炸增长,此架构也遇到了一定的问题。
三、此前的US3元数据服务架构
US3元数据主要存储在MongoDB集群内,MongoDB集群则是链式结构,一个MongoDB集群由于写入量太大扛不住了,就在后面增加一个MongoDB集群,查询的时候接入集群将请求下发至DB-Gateway,DB-Gateway先将json数据转译成bson,然后根据Bucket对应的DB(可能有多个),从新MongoDB至老MongoDB依次查询数据。删除的时候则需要将发送请求发送至所有bucket涉及的MongoDB集群。
一定会有小伙伴问为什么不直接扩mongo分片?因为线上数据量大、服务压力大、客户需求高直接扩分片会有数据迁移,从而导致延迟,对线上服务的影响较大。
同时随着MongoDB存储的数据量越来越大, MongoDB的性能开始显得不足。而原先直接在MongoDB进行列表扫描的方式会极大地影响其读写性能,为了缓解MongoDB的压力,我们将列表服务分离出来,在外部同步MongoDB的数据,再对外提供服务。
列表服务对多个MongoDB进行同步,每加一个MongoDB集群就要加一个列表服务节点,查询的时候也是根据bucket对应的DB,同时发送至多个列表服务,然后再在接入层聚合。
由此我们总结了在元数据服务场景中,通常存在的一些痛点:
1、业务痛点:性能差
•链式架构,老MongoDB的写能力用不上,读会有放大。
•删除需要删除多个MongoDB数据,可能存在数据不一致,孤儿文档问题。
•列表服务同步数据有延迟,客户无法实时检索上传的文件。大量删除导致列表服务同步延迟飙升。
2、运维痛点:可扩展性差
•一个MongoDB顶不住就加一个MongoDB切,导致扩展同步繁琐、手动切换出错概率大。
3、运营痛点:成本高
•由于性能不够,需要更多的机器堆读写性能。列表服务由于分离出来,也需要额外的机器,导致元数据索引服务成本高昂。
四、新的US3元数据服务架构
我们简化了US3整个体系架构,主要将其分为了高兼容性的DB-Gateway服务、高可用的计算存储分离的分布式KV数据库-UKV以及高度定制化的RocksDB-URocksDB三部分,将元数据存储于UCloud优刻得自研的计算存储分离的UKV中,因此获得了更强大的容灾能力,更快的热点节点分裂、性能拓展能力,还有底层存储EC支持,异构存储等降低成本的潜力。
新架构带来了几个方面的提升:
•性能提升
元数据删除延迟降低、读放大降低。
•列表服务无延迟
解决了客户经常因为列表服务延迟而不能实时看到上传的数据的问题。(也不再有延迟告警问题)
•成本降低
元数据服务成本降低80%。
•运维更简单
计算节点容灾无数据迁移,无需提心吊胆。热点自动分裂,不再需要手动加节点扩容。
有几个关键产品(或环节)在这次优化中起到重要作用:
五、新架构的几个核心改变
1.DB-Gateway
DB-Gateway是一个无状态进程,它兼容老的元数据服务,同时具有底层UKV协议转换功能,Sharding路由功能,并且聚合了原先的列表服务功能,因此能够移除列表服务需要的机器。
DB-Gateway通过ConfigServer集群更新UKV的Sharding路由表,来将不同的请求打到不同的UKV节点上去。
2.UKV
UKV是UCloud优刻得自研的计算存储分离的分布式KV存储系统。其存储底座为分布式统一存储Manul,Manul是具备自动数据平衡、异构介质存储、EC存储等功能的高性能、高可用、分布式存储服务。
UKV提供了集群管理服务,快速备份等常规功能,还针对US3元数据服务设计了数据结构,使其在UCloud优刻得日常的业务场景下提供更优秀的性能。
UKV使用UCloud优刻得自研的、由开源RocksDB定制化的URocksDB作为计算节点,同时依托Manul,实现了主从热备,热点节点快速分裂等特色功能。
由于篇幅有限,对于UKV的架构设计以及特色功能不在此展开,敬请期待下一次的分享。
好文章,需要你的鼓励
北京大学与小红书公司联合研究团队提出的Uni-Instruct框架,成功统一了10多种现有单步扩散蒸馏方法。该框架基于新颖的f-散度扩散扩展理论,通过可计算的等价损失函数训练单步扩散模型。实验表明,Uni-Instruct在CIFAR10和ImageNet 64×64数据集上创造了新的单步生成记录,FID分别达到1.46和1.02,甚至超越了其79步教师模型。研究还成功将该方法应用于文本到3D生成任务,展示了统一框架在提升生成质量和效率方面的巨大潜力。
这篇研究介绍了KVzip,一种创新的查询无关KV缓存压缩方法,通过上下文重建机制为大型语言模型提供高效存储解决方案。该技术能将KV缓存大小减少394倍,同时提高解码速度约2倍,在各种任务上性能几乎不受影响。不同于传统查询相关的压缩方法,KVzip创建可在多种查询场景下重用的通用压缩缓存,特别适合个性化AI助手和企业信息检索系统。研究在LLaMA3.1-8B、Qwen2.5-14B和Gemma3-12B等多种模型上进行了验证,处理长度高达17万词元的文本,并能与KV缓存量化等其他优化技术无缝集成。
腾讯与上海交通大学联合推出的DeepTheorem研究突破了大型语言模型在数学定理证明领域的限制。该项目创建了包含12.1万个IMO级别非形式化定理的大规模数据集,开发了专门的RL-Zero强化学习策略,并设计了全面的评估框架。研究表明,通过使用自然语言而非传统形式化系统,即使是7B参数的模型也能在复杂定理证明上取得显著成果,超越许多更大的专业模型。这一成果为AI数学推理开辟了新途径,使语言模型能够像人类数学家一样思考和证明。
MAGREF是字节跳动智能创作团队开发的多主体视频生成框架,能从多张参考图像和文本提示生成高质量视频。该技术引入了区域感知动态遮罩机制,使单一模型灵活处理人物、物体和背景,无需架构变化;并采用像素级通道拼接机制,在通道维度上运作以更好地保留外观特征。实验表明,MAGREF在身份一致性和视觉质量方面优于现有技术,能将单主体训练泛化到复杂多主体场景,为内容创作者提供了强大而便捷的视频生成工具。