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

news2025/4/24 2:40:35

想象一下这样的场景:每一笔线上交易都能实时更新库存分析,金融应用能在交易发生那一刻完成欺诈检测——既不延迟也不损失性能。这正是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)已经在全球部署,具有落地性和推广潜力。

论文地址:HaSiS: A Hardware-assisted Single-index Store for Hybrid Transactional and Analytical Processing | USENIX

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2341164.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【论文阅读21】-PSOSVM-CNN-GRU-Attention-滑坡预测(2024-12)

这篇论文主要提出并验证了一种新型的混合智能模型(PSOSVM-CNN-GRU-Attention),用于准确预测滑坡的点位移,并构建可靠的位移预测区间。通过对Baishuihe滑坡和Shuping滑坡的案例分析,展示了该模型的出色性能。 [1] Zai D…

蓝牙 6.0 发布,解锁无线科技新可能

在5G和Wi-Fi 7高速发展的时代,蓝牙技术始终以独特优势深度融入日常生活。从无线耳机到智能家居,它凭借低功耗、高兼容的特性,悄然连接各类智能设备,打造无缝的数字生活体验。无论是聆听音乐、智能门禁还是健康监测,蓝牙…

EasyCVR视频智能分析平台助力智慧园区:全场景视频监控摄像头融合解决方案

一、方案背景 在智慧园区建设的浪潮下,设备融合、数据整合与智能联动已成为核心诉求。视频监控作为智慧园区的“视觉中枢”,其高效整合直接影响园区的管理效能与安全水平。然而,园区内繁杂的视频监控设备生态——不同品牌、型号、制式的摄像…

为您的照片提供本地 AI 视觉:使用 Llama Vision 和 ChromaDB 构建 AI 图像标记器

有没有花 20 分钟浏览您的文件夹以找到心中的特定图像或屏幕截图?您并不孤单。 作为工作中的产品经理,我总是淹没在竞争对手产品的屏幕截图、UI 灵感以及白板会议或草图的照片的海洋中。在我的个人生活中,我总是捕捉我在生活中遇到的事物&am…

K8S节点出现Evicted状态“被驱逐”

在Kubernetes集群中,Pod状态为“被驱逐(evicted)”表示Pod无法在当前节点上继续运行,已被集群从节点上移除。 问题分析: 节点磁盘空间不足 ,使用df -h查看磁盘使用情况 可以看到根目录 / 已100%满&#x…

重学React(一):描述UI

背景:React现在已经更新到19了,文档地址也做了全面的更新,上一次系统性的学习还是在16-17的大版本更新。所以,现在就开始重新学习吧~ 学习内容: React官网教程:https://zh-hans.react.dev/lea…

遨游通讯发布国产化旗舰三防手机AORO AU1:以自主可控重塑工业安全

在全球产业链加速重构的背景下,国产化技术突破已成为工业领域高质量发展的核心驱动力。作为专精特新中小企业,遨游通讯始终以“让世界更安全、更高效、更简单”为使命,深耕“危、急、特”场景智能通信设备的研发。近日,遨游通讯正…

【Python】Selenium切换网页的标签页的写法(全!!!)

在使用selenium做网站爬取测试的时候,我们经常会遇到一些需要点击的元素,才能点击到我们想要进入的页面, 于是我们就要模拟 不断地 点点点击 鼠标的样子。 这个时候网页上就会有很多的标签页,你的浏览器网页标签栏 be like: 那…

DeepSeek和Excel结合生成动态图表

文章目录 一、前言二、3D柱状图案例2.1、pyecharts可视化官网2.2、Bar3d-Bar3d_puch_card2.3、Deepseek2.4、WPS2.5、动态调整数据 一、前言 最近在找一些比较炫酷的动态图表,用于日常汇报,于是找到了 DeepseekExcel王牌组合,其等同于动态图…

Ubuntu20.04 部署llama-factory问题集

llama3 微调教程之 llama factory 的 安装部署与模型微调过程,模型量化和gguf转换。_llamafactory 部署-CSDN博客 1.跟着教程 llama-factory下载不下来 来,试着换源,多试几次,就可以成功了。。。 2.跟着教程,发现无法…

大语言模型助力 Support Case 分析,提升云服务效率

1. 背景 技术工单(Support Case)是企业在进行云平台操作的时候通常会用到的一种技术支持类型,提供的技术支持通常包括所有的云服务的使用问题、账单问题、限制额度提升等等。对于云平台的管理者而言,对各个 BU 所提的工单进行统计…

ubuntu磁盘挂载

1、‌查看磁盘设备及分区‌ 命令‌:列出所有块设备(磁盘及分区) lsblk 0表示此块未挂载 2、格式化分区 sudo mkfs.ext4 /dev/sdb 注意sdb换成自己的块名称 3、创建挂载点目录‌ sudo mkdir -p /mnt/data4、永久挂载 sudo blkid /dev…

chili3d调试笔记8 打印零件属性 浏览器元素展开

无效, 返回的是节点不是坐标啥的, 找他的属性 把document和selectednote(空集)传给handleshowproperty方法 怎么获得selectnotes和selectnotes的property值 有selectnotes运行这段就行了 明天再搞 ----------------------------…

新书速览|DeepSeek移动端AI应用开发:基于Android与iOS

《DeepSeek移动端AI应用开发:基于Android与iOS》 1 本书内容 《DeepSeek移动端AI应用开发:基于Android与iOS》深入剖析了DeepSeek平台的架构原理、API调用及开发实践等核心内容,助力读者在Android与iOS移动端高效集成DeepSeek API,打造出契…

Android调用springboot接口上传大字段,偶现接口超时的优化

介绍 最近有个功能,Android通过okhttp上传实体类,实体类包含一个大字段,上传的字符串长度达到300k,偶现接口超时的情况,大概100次有5次,看日志发现数据并没有到达接口,可能在网络传输中就超时了…

react组件之间如何使用接收到的className(封装一个按钮案例)

带有hover渐变效果 一、父组件 import LineGradientBox from ../line-gradient-box; import styles from ./index.module.scss;<LineGradientBoxfontSize{20}className{styles.btn_height}textSign upwidth"100%"onClick{() > {navigate(/sign-up);}} /> …

JavaScript 数组常用方法解析

1. concat - 合并数组 语法&#xff1a; const newArray oldArray.concat(value1, value2, ..., arrayN); 作用&#xff1a; 将当前数组与其他数组或值合并&#xff0c;返回一个新数组&#xff0c;原数组不变。 测试案例&#xff1a; const arr1 [1, 2, 3]; const arr2…

09.传输层协议 ——— TCP协议

文章目录 TCP协议 谈谈可靠性TCP协议格式 序号与确认序号窗口大小六个标志位 确认应答机制&#xff08;ACK&#xff09;超时重传机制连接管理机制 三次握手四次挥手 流量控制滑动窗口拥塞控制延迟应答捎带应答面向字节流粘包问题TCP异常情况TCP小结基于TCP的应用层协议 TCP协…

数字化转型“变形记”:中钧科技经营帮如何让企业长出“智慧骨骼”

数字化转型就像给企业安装一个"智慧引擎"&#xff0c;而中钧科技的经营帮平台就是这台引擎的智能控制系统。让我们用"人体"来打个比方——当企业的数据、流程、决策像神经脉络般打通&#xff0c;才能真正实现灵活运转。下面就以经营帮的五大核心板块为例&a…

【问题解决】centos7已经不维护了,如何继续使用yum源?

背景 CentOS 7 已于2024年6月30日停止维护&#xff0c;在停止维护后我们之前配置的国内镜像源大多都是空目录了&#xff0c;即在线国内镜像源不可用,就像下边这样提示&#xff1a; [rootbogon yum.repos.d]# yum install vim 已加载插件&#xff1a;fastestmirror Loading mi…