FAST'25 论文解读:HaSiS 单索引存储架构实现 HTAP 数据处理新范式

想象一下这样的场景:每一笔线上交易都能实时更新库存分析,金融应用能在交易发生那一刻完成欺诈检测——既不延迟也不损失性能。这正是 HTAP(Hybrid Transactional and Analytical Processing,混合事务与分析处理)带来的可能,它让数据库既能快速处理事务(如下单),又能同步完成数据分析(如销售趋势洞察)。
但问题是:传统数据库很难同时兼顾这两种能力。 我们在 FAST’25(美国 USENIX 文件与存储技术会议)上参与发表的最新研究《HaSiS:一种面向混合事务分析处理的硬件辅助单索引存储》正是为了解决这个问题。
HTAP 的挑战:两种任务,两种结构
数据库要处理两类核心任务:
事务处理(Transactional Processing):处理小而频繁的更新,比如购物车加购,它喜欢行式存储(数据一行一行排列);
分析处理(Analytical Processing):处理大批量数据来提炼洞察,比如分析热销产品,它更偏好列式存储(按字段纵向排列,更便于扫描)。
由于两者使用的数据结构不同,很多 HTAP 系统会采用 “双索引” 方案:事务用 B+树,分析用列存格式,然后在它们之间不断搬运数据。
这套方法“能用”,但代价高昂:数据迁移浪费时间(几秒甚至几分钟),让分析延迟,同时也拖慢了事务处理。
我们团队看到了更好的方法:如果一个索引就能搞定所有事,而且是即时的呢?
HaSiS 解决方案:借助智能硬件实现单索引方案
我们的解决方案 HaSiS(硬件辅助单索引存储)抛弃了双索引模型,转而采用单一的 B+树结构——这是一种我们通过现代硬件技术增强的经典数据库结构。关键技术是什么?就是带有内置压缩功能的计算存储设备(CSDs),比如我们测试中使用的 ScaleFlux CSD-3310。
大页面,低成本:传统 B+树使用小页面(8-16KB)来保持事务更新的高效响应,但这对分析处理性能不利。HaSiS 采用 128KB 的大页面来加速分析操作,同时利用 CSD 的压缩技术缩减稀疏数据(如空白区域或零值数据),避免浪费物理存储空间。这打破了"大页面会降低事务处理速度"这一传统规则。
混合布局:每个页面包含列式区块(用于分析)和日志区块(用于事务),更新直接写入日志,分析直接读取列式区,全部走一个索引,无需迁移数据。
智能缓存:我们设计了混合缓冲池,只加载需要的部分(如 4KB 块,而非整个 128KB),减少内存浪费并保持高速运行。
CSD 设备的硬件压缩技术能够在每个页面中存储更高密度的数据而不增加实际存储负载,确保数据实时可用,使分析操作能够立即访问最新的数据更新,而非传统架构中存在的分钟级延迟。
测试结果:HaSiS 表现如何?
我们搭建了完整的原型系统,在一台 22 核 Intel Xeon 服务器+ScaleFlux CSD-3310 硬件上跑了事务(TPC-C)和分析(TPC-H)测试,比较对象包括 TiDB、MySQL、PostgreSQL、Parquet 等。
数据实时性:HaSiS 将更新传递到分析端只需 17-121 微秒,几乎是即时的,而 TiDB 因为数据迁移要 30-2700 微秒,延迟降低 20 倍以上。
性能:HaSiS 在事务处理速度上与 TiDB 相当或更优(延迟差异在 3-7%范围内),在分析性能上快了 6.6%,这得益于其单索引的简洁设计。此外,HaSiS 在事务处理上超越了 MySQL 和 PostgreSQL,在分析能力上能够与 Parquet 相媲美。
存储效率:HaSiS 比 TiDB 的双存储方案节省了 68%的空间,将 164GB 的逻辑数据压缩成 74GB 物理存储。
即使在重度混合工作负载下,HaSiS 仍然可以保持稳定运行,随着客户端数量的增加,系统性能呈线性扩展,直到达到硬件资源的极限。
为什么它意义重大?
HaSiS 不仅是个实验室的成果,更预示着数据处理的新方向。电子商务平台可实现销售数据与趋势分析的实时融合,金融机构能在交易发生的同时执行欺诈检测分析。
通过将单一索引结构与计算存储硬件结合,HaSiS 在减少系统复杂度、提升实时性、降低成本方面实现了三赢,而且相关硬件(如 ScaleFlux 的 CSD)已经在全球部署,具有落地性和推广潜力。
论文地址:https://www.usenix.org/conference/fast25/presentation/huang
版权声明: 本文为 InfoQ 作者【ScaleFlux】的原创文章。
原文链接:【http://xie.infoq.cn/article/f0033ddb1b2b7da36dc97ce53】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论