标签 存储优化 下的文章

导读:面对海量多模态数据管理困境,思必驰通过构建以 Apache Doris 为核心的数据集平台,实现了数据从“散、乱、滞”到“统、明、畅”的转变。在关键场景中,存储占用下降 80%、查询 QPS 提升至 3w,不仅实现可量化的效率提升和成本优化,更系统化地提升了 AI 研发效率与模型质量。

本文整理自 思必驰数据中台架构师魏凯君在 Doris Summit 2025 中的演讲内容,并以演讲者第一视角进行叙述。

思必驰作为专注于对话式人工智能的平台型企业,围绕“云+芯”战略布局,致力于提供软硬件结合的全链路 AI 产品与服务。在长期服务智能车载、家居等终端场景中,我们积累了海量的多模态训练语料(包含音频、文本及人工标注)。

早期的数据管理方式逐渐成为 AI 研发的瓶颈。各业务团队的标注数据分散在不同的存储系统中,依赖人工进行维护和同步。随着数据规模快速增长至 PB 级别,传统方式在三个方面面临严峻挑战:

  1. 数据一致性问题:同一份数据在不同团队中存在多个副本,且更新不同步,影响模型训练的一致性。
  2. 协同效率低下:算法工程师难以快速查找、复用跨团队的数据资产,重复标注与数据准备浪费了大量时间。
  3. 版本追溯困难:模型迭代时,无法精准关联训练所使用的数据版本,导致问题复现与效果归因困难。

这些问题使得数据资产化与高效协同成为制约 AI 研发规模化的关键。为此,我们决定构建一个统一的数据集管理平台,目标是将原始数据标准化、资产化,打造一个支持高效调用、可靠追溯、安全共享的“AI 数据基座”

为何是 Apache Doris?

思必驰与 Apache Doris 的合作始于早期技术实践。在 Doris 0.12 版本时期,我们率先将其应用于内部实时数仓场景,并随业务发展,逐步建立起面向外部服务的 Doris 集群,支撑了包括实时看板、用户画像与自助分析在内的多项数据能力。

此外,Doris 在海量业务日志场景(容器日志)中也发挥了关键作用,替代了原有的 Elasticsearch,并基于 Doris 自建日志查询平台,服务智能座舱语音业务。在同等硬件资源下,日志写入性能从原来的 100w/s 提升至 300w/s,存储成本也降低了 50% 以上。

基于 Doris 在性能、成本、稳定性方面的综合优势,在构建数据集平台时,它自然成为数据底座的首选。我们的新场景对数据库提出了更高要求:

  • 海量数据去重与高效查询:需处理 10 亿级样本的快速去重与复杂筛选。
  • 完善的版本管理:需支持数据集的版本化存储、快速切换与对比。
  • 支持向量检索能力:为后续的相似样本检索、特征比对提供支持。
  • 高性价比存储:需利用高效压缩与冷热分离,降低 PB 级数据的存储成本。

综合评估,Apache Doris 在满足上述核心需求的同时,其简洁的架构、易用的运维以及活跃的社区,使其成为最优方案。

面向 AI 大规模训练的数据基座

我们采用类 MLOps 理念,设计了贯穿数据-模型-应用的标准化流水线。

面向 AI 大规模训练的数据基座.PNG

  • 数据预处理:原始的多模态数据(语音、文本等)通过采集、回流进入系统,经由专业的标注平台进行加工,再进入 AI 数据前台进行清洗与特征提取。
  • 数据集管理系统:经过预处理的数据,汇入 基于 Apache Doris 构建的数据集管理系统(即本文核心) 。该系统是整个 AI 中台的关键,负责数据的版本化存储、管理与发布,为模型训练与测试提供数据支撑。
  • 模型训练及管理:测试数据集进入模型训练系统进行训练,生成的模型经模型管理平台统一管理,最终部署上线,服务于业务应用。

由上图可知,数据集管理系统被囊括在 AI 中台这一架构中。纵观整个 AI 中台,主要包括三个部分

  • 数据管理系统:基于 Apache Doris 和 Elasticsearch 构建,提供页面、客户端和相应的 SDK;
  • AI 平台:基于推理与训练框架,以及资源管理与任务调度框架构建;同样提供页面、客户端和 SDK。
  • 底层基础设施:涵盖计算层、分布式存储体系及优化后的网络层。

面向 AI 大规模训练的数据基座-1.png

为满足不同业务场景需求,数据集管理 系统设计了单中心和多中心两种部署架构:

  • 单中心:面向核心研发场景,数据访问统一指向本中心的 Apache Doris、Elasticsearch、Kafka 及相关文件系统,保证最强的一致性与性能。

面向 AI 大规模训练的数据基座-2.png

  • 多中心:面向跨地域或异构计算资源场景, 采用分布式设计。主中心的数据层使用 Apache Doris,各分中心采用独立的分布式文件系统,这些存储之间可以实现数据的相互同步。针对各个中心的训练任务,系统能够读取这些分布式文件存储中的数据进行训练。

面向 AI 大规模训练的数据基座-3.png

数据版本毫秒级切换,存储占用下降 80%

过去,我们依靠人工在文件系统中维护数据集目录,随着版本激增,混乱与错误难以避免。新平台需要实现类似代码库的版本管理能力(对比、切换、回滚)。

为此,我们利用 Doris 的特性进行改进:

  1. 列式存储:将标注信息等结构化数据从文本文件迁移至 Doris 表,利用列式存储的高压缩特性,存储空间占用降低 80%以上
  • 分区表实现版本化:以数据集版本作为分区键。最新活跃版本存放在 SSD(热存储),历史版本自动迁移至 HDD(冷存储),SSD 使用率降低 30%以上
  • 表结构设计:核心围绕数据集表,关联文件表标注表。通过分区机制,实现了毫秒级的历史版本数据检索与切换。

数据版本毫秒级切换,存储占用下降 80%.png

精准溯源检索,查询 QPS 提升至 3W

为解决模型训练后与原始数据脱节这一核心痛点,数据集平台内置了样本溯源能力。传统的流程在完成特征提取后,往往丢失了原始数据的属性与标注信息,导致两大问题:模型无法关联其“数据血缘”,以及不同模型版本间难以进行有效的对比调优。为此,我们确立了样本 ID 全局唯一的核心要求,以此支撑精准的溯源与检索

在样本检索实现初期,团队采用 Apache Doris 的 IN 查询方式支撑相关能力,而面对瞬时并发的规模点查请求时,会有明显资源与性能开销,部分节点峰值可达 80%。

为此,团队基于 Apache Doris 的相关能力进行优化,主要采用两类改进

  • 首先,根据“高频点查”这一核心特征,切换至行式存储并优化 I/O 路径,使单次查询更快。
  • 其次,通过全面启用预处理语句,将查询计划固定下来,避免了大量的重复计算开销。

优化后,在现有配置下,查询 QPS 提升至 3 万/秒;同时在高频点查询期间,CPU 占用由原先约 80% 降至约 10%,并持续稳定

平台收益:可量化的效率提升与成本优化

在平台落地后,形成了可量化的建设成效:数据集规模超过 1 万个,数据总量超过 500TB,样本数量超过 10 亿,平台使用人数超过 200 人。通过新旧架构对比,新平台在三个维度带来了显著收益:

  • 成本大幅优化:通过消除数据冗余拷贝,存储成本降低 20% 以上,网络成本节约超 3 倍。
  • 效率全面提升:数据查询效率提升超 3 倍,数据同步效率提升超 2 倍。
  • 研发显著提效:模型研发流程效率提升 20% 以上,且数据集使用得以全面规范。

更重要的是形成了不可替代的隐性价值:

  • 统一了数据质量标准:公司内研发、测试、业务团队使用同一套数据和规范,从根本上保障了模型输入的一致性。
  • 增强了问题复现能力:任何模型结果均可精准追溯至对应的训练数据集与版本,使得问题调试、效果归因有据可依。
  • 实现了流程自动化闭环:结合自动标注系统,实现了从数据回流、清洗、标注到训练的数据闭环,极大提升了 Badcase 的定位与修复效率。

未来规划

基于当前的成功实践,未来我们将继续深化 Apache Doris 的应用,推动数据架构向更先进的方向演进:

  1. 日志分析场景全面替换:已在 TPS 15 万量级场景完成验证,将加速推进用 Doris 替代 Elasticsearch,预计进一步降低日志处理总成本。
  2. 拥抱 Doris 4.0 新特性:重点关注并计划升级至 Doris 4.0 版本,利用其向量检索能力,支持更复杂的相似性查询与 AI 原生应用。
  3. 探索湖仓一体架构:打破数据孤岛,实现数据在数据湖(低成本存储)与数据仓库(高性能分析)间的自由流动与统一管理,支撑 SQL 查询、机器学习等多样化负载。
  4. 推进存算分离落地:实现计算资源的按需弹性伸缩与负载隔离,并将冷数据沉降至对象存储,在提升资源利用率的同时,追求极致的存储成本效益。

摘要

随着数据密集型应用的快速发展,哈希索引已成为内存数据库、键值存储和重复数据删除系统的核心组件。传统哈希索引在面对持久内存(PMem)时,由于存储流量放大和内存效率低下,难以充分利用其大容量和持久性优势。为此,OceanBase研究人员联合厦门大学、昆士兰大学学生及教授提出了一种新型哈希索引设计MetoHash,通过层次化设计、批量持久、指纹过滤和重复合并等技术,有效解决了传统方案在存储 I/O 放大和内存效率方面的问题。

简介

随着数据密集型应用的快速增长,能够实现常数级查找复杂度的哈希索引已成为构建内存数据库、键值存储和重复数据删除系统的核心组件。传统哈希索引在面对新兴的持久内存时,虽然利用了其大容量和数据持久性优势,却在存储流量放大和内存效率方面面临严峻挑战。

持久内存以其大容量、数据持久性、近 DRAM 性能等特性,为内存架构带来革命性变革。然而,PMem 的固定访问粒度和持久化 CPU 缓存特性,使得传统哈希索引设计难以充分发挥其硬件潜力,其原因在于现有方案极易放大存储 I/O 或降低内存效率。

日前,一篇题为《MetoHash: A Memory-Efficient and Traffic-Optimized Hashing Index on Hybrid PMem-DRAM Memories》的论文被高性能计算顶级会议SC 2025录用,并荣获最佳学生论文提名(该会议录用的 136 篇论文中选择 6 篇)。该论文由厦门大学、昆士兰大学与 OceanBase 的研究人员联合完成。其中,厦门大学硕士生余子祥、邓光阳为共同第一作者,沈志荣教授为通讯作者;昆士兰大学鲍芝峰教授,以及 OceanBase 的徐泉清、杨传辉研究员共同参与了此项研究。

SC 由美国计算机协会(ACM)与美国电气电子工程师学会(IEEE)于 1988 年共同创办,是全球高性能计算领域公认的年度顶级盛会,是中国计算机学会 CCF 推荐的 A 类国际会议。SC 2025 会议共收到 643 篇投稿,接收 136 篇,录用率 21.2%。

本论文的核心思想是构建一个跨越 CPU 缓存、DRAM 和 PMem 的三层索引架构,让数据在层次化存储中高效流动。

本文提出的 MetoHash 通过层次化设计、批量持久、指纹过滤、重复合并等关键技术,系统性地解决了现有方案在流量放大与内存效率上的痛点,为高性能键值存储、内存数据库、实时分析等应用提供了强大的底层支撑。

核心理念:三层协同,让数据在混合内存中“各得其所”

传统哈希索引在面对由持久内存(PMem)和动态随机存取内存(DRAM)构成的混合内存系统时,面临一个根本性矛盾:若为追求 PMem 的持久性而将索引完全置于其中,则会因 PMem 较高的访问延迟和固定的写入粒度导致严重的性能下降和 I/O 放大;若为追求速度而将索引完全置于 DRAM,则又无法利用 PMem 的大容量和持久化优势。

MetoHash 的创新核心理念在于“解耦与协同”。它不再将哈希索引视为一个单一的整体,而是将其功能拆解,并根据 CPU 缓存、DRAM 和 PMem 的不同硬件特性进行重新部署,构建了一个三层的高效数据管理流水线。其目标是让热数据、元数据和海量持久化数据分别在最适合的存储层级上被处理,从而在整体上实现高吞吐、低延迟、低流量和高内存效率的统一。


图1 MetoHash 的三层索引结构

核心技术一:缓存辅助的批量收集写入

此技术旨在根治向 PMem 进行小粒度插入时引发的“写放大”(Write Amplification)与频繁桶探测问题。其方案是在持久性 CPU 缓存中预分配多个与 PMem 访问粒度对齐的“收集表”(Collecting Table)。新到达的键值对根据哈希值被直接路由到相应收集表,并通过原子操作实现无锁快速插入,从而充分利用缓存的高速与持久化特性。当一个收集表被填满时,其包含的多个键值对将作为一个完整的、与 PMem 最佳写入粒度匹配的数据单元,被一次性顺序刷写到 PMem 的备份日志中。这种方法彻底消除了因写入粒度不匹配带来的额外 I/O 流量,充分利用 PMem 的写入带宽,同时将零散插入转化为高效批量操作。


图2 持久缓存刷入 DRAM 和 PMem 中

核心技术二:基于 DRAM 指纹的反向精准查找

该技术致力于解决在混合多层索引中查询时在 PMem 层进行盲目、耗时的桶探测的瓶颈。其核心是在 DRAM 中维护一个紧凑的“指纹”目录,其本质为 PMem 主哈希表中的每个键哈希值的一个简短片段。

在进行查询时,系统首先计算查询键的指纹,并利用 SIMD 指令等在 DRAM 指纹目录中进行高速并行比对,迅速筛选出 PMem 中少数几个可能匹配的位置。只有这些候选位置,才需要访问 PMem 进行精确的键值比较。整个查询遵循 PMem 主表 → DRAM 表 → CPU 缓存收集表的反向路径,确保定位到有效值。这一设计将耗时的海量比对操作从慢速的 PMem 转移至高速的 DRAM,极大减少了查询延迟与 PMem 访问压力。


图3 DRAM 结构刷入 PMem 中,并在 DRAM 中保留指纹

核心技术三:段分裂驱动的重复项消除与空间回收

为解决“先插入后检查”模式可能产生的键重复问题以及删除操作导致的空间碎片化问题,MetoHash 在数据结构段分裂中引入合并与清理机制。

首先,DRAM 桶与 PMem 桶在逻辑布局上严格对齐,使得 DRAM 桶满时其内容能高效批量刷写至 PMem 对应位置。当 PMem 中某个段需要分裂以扩容时,系统将旧段所有数据读入 DRAM,在此过程中主动识别并消除同一键的多个版本的无效值,仅保留其最新的有效项,并将合并、去重后的结果写入新分配的段。此过程自然跳过了已标记删除的项,从而在完成容量扩展的同时,一举实现了存储空间的即时回收与整理,保持了 PMem 存储的紧凑性与查询效率。

性能成果

在实际搭载英特尔傲腾持久内存的测试平台上,MetoHash 与八种前沿方案进行了全面对比。

①吞吐量提升:在 YCSB 等各类负载下,其吞吐量平均超越以往方案 86.1% 至 257.6%,并呈现近线性扩展能力。


图4 MetoHash 相较其他基线索引在不同负载下均有明显优势

②变长数据支持:在处理 16B 至 256B 的变长键值时,其吞吐量平均仍领先对比方案 190.8%,尤其在小值主导的负载中优势显著。


图5 MetoHash 相较于其他基线索引在不同键值对大小下均有明显优势

③内存效率权衡:相比将全部索引存于 DRAM 的方案(如 VIPER),MetoHash 的 DRAM 占用减少 86.7%;相比 PMem 利用率低的方案 (如 Plush),MetoHash 的 PMem 占用减少 86.5%。


图6 MetoHash 相较于其他基线索引能够取得较好的 DRAM/PMem 效率权衡

小结

这项工作提出的 MetoHash 混合内存哈希索引,为持久内存时代的高性能、高内存效率数据管理提供了系统的解决方案。在理论上,MetoHash 首次通过缓存、DRAM、PMem 三层协同的架构,解决了由 PMem 固定访问粒度引发的 I/O 放大与内存效率低下这一对核心矛盾。在实践中,其在多种负载下的吞吐量相较当前方案平均提升 86.1% 至 257.6%,存储流量大幅降低,内存占用显著优化,在多种负载中验证了其卓越性能。

欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/

雪花相册清理是一款我开发的 iOS 照片清理和存储优化应用,旨在解决我一直以来遇到的问题:iPhone 存储空间不足和相册整理困难。
从现在开始到 1 月 26 日,终身专业版完全免费。

只需一个应用,即可完成通常需要多个工具才能完成的操作:快速清理、整理照片,压缩照片和视频,释放大量存储空间。

自发布以来的两个月里,我收到了大量真实用户反馈,修复了许多问题,并对用户界面和交互进行了多次改进。
现在雪花相册清理功能更加完善,界面更简洁,使用体验也更加流畅了。

核心功能:

  1. 基于滑动手势的照片整理


    • 基于熟悉且接近原生体验的照片浏览方式。只需向上滑动即可删除照片,一次点击即可快速将照片添加到/从相册中移除——几乎无需学习即可上手。
  2. 多种整理模式


    • 按日期或相册整理,或使用随机模式,让照片整理过程不再枯燥乏味,更加有趣。
  3. AI 智能选择


    • 自动检测重复、相似和模糊的照片,并推荐最佳照片进行保留——帮助您减少选择的烦恼。
  4. 照片和 4K 视频压缩


    • 压缩大型照片和 4K 视频,将 Live Photos 提取为静态图像,并在几乎不损失画质的情况下,释放高达 80% 的存储空间。
  5. 简洁的界面和流畅的交互


    • 没有复杂的设置。打开应用即可立即开始清理。
  6. 100% 离线且注重隐私


    • 所有处理都在您的设备本地进行。

📥 下载

👉 [App Store 链接]https://apps.apple.com/app/id6747161329
或者在 App Store 搜索 Swish Clear / 雪花相册清理

反馈和建议

如果您遇到任何问题、有任何建议或新功能想法,请在评论区留言。