0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用可计算SSD加速云原生数据库

SSDFans 来源:SSDFans 2023-05-25 09:33 次阅读

背景

PolarDB是阿里云设计的云原生OLTP数据库,每个数据库实例由多个数据库节点和存储节点组成,节点间通过高速RDMA网络连接在一起。为了保证原子性,每个POLARDB实例同时仅允许一个数据库节点处理写请求,且通过Parallel-Raft协议在写入时同时向存储节点写入3个副本。

2c9daad8-fa1e-11ed-90ce-dac502259ad0.png

计算存储设备CSD是在具备基本存储功能同时具备数据处理能力的存储设备,相比使用CPU处理的模型,CSD采用的异构计算架构可以达到更好的性能和效率。但是CSD同时存在硬件成本更高、实际部署适配开发成本更高等问题。

动机

当前的POLARDB在数据库节点中处理表扫描任务,将扫操作下移到存储节点可以更好提升数据库处理分析型负载的性能、降低网络流量,而列存储需要扫描时更高的数据处理能力。

关键在于如何扩展存储节点使之支持处理额外的扫描任务。第一种方法是扩展存储节点的CPU,然而这会带来过高的成本问题;第二种方法是使用PCIe卡模式的FPGA扩展,但是这种方式同样存在:扫描作为数据密集型负载带来的数据传输流量过高导致的高功耗、负载间冲突,以及PCIe扩展卡带宽瓶颈等问题。最后一种是本文提出方式,即分布式异构架构,将表scan操作分散到每个存储设备中,由此带来的挑战包括:如何修改整个软件存储站以支持扫描操作下移;和如何降低FPGA的成本、提高FPGA并行性。

方法

本文首先解决了如何实现跨软件栈的扫描下移工作,包括了POLARDB的存储引擎、下层的分布式文件系统POLARFS以及可计算存储器CSD。

首先作者讲解了如何扩展POLARDB存储引擎,使得存储引擎可以将扫描任务传递给下层的POALRFS,并负责回收CSD返回的扫描结果,扫描任务的参数包括:被扫描数据的位置、被扫描表的结构以及扫描的条件。由于CSD难以支持所有的扫描条件(如LIKE),因此POLARDB的存储引擎在收到扫描请求时需要首先分析扫描条件,并将CSD可以处理的条件子集传递下去,并在收到CSD的结果后进行二次检查。

接着作者描述了如何扩展作为存储底层的分布式文件系统POLARFS,POLARFS负责管理所有存储节点上的数据。为了尽可能让文件的大部分数据块落在同一个CSD上,POLARFS采用了大粒度(4MB)条带,当出现极少数的一个压缩条带横跨两个CSD时,存储节点采用CPU处理对应的scan操作。在传递scan请求时,POLARDB存储引擎传递给POLARFS的是文件偏移表示的被扫描数据位置,而CSD仅能定位以LBA形式的数据位置,因此,POLARFS在收到POLARDB存储引擎的扫描请求书,会将横跨m个CSD的请求分割成m个扫描请求,并将扫描请求中的偏移转换到CSD的LBA。

之后作者描述了如何扩展CSD功能。CSD通过内核空间的驱动进行管理,每个CSD都暴露为一个块设备。驱动将收到的POLARFS转发的扫描请求分割成多个子任务,以解决大扫描任务长期占据NAND带宽,影响普通IO请求延迟性能的问题。同时,子任务有助于降低硬件资源的使用率,提高NAND访问的并行性,同时降低后台GC可能的过高延迟。

为了更好的降低成本,作者修改了POLARDB存储的数据块格式,以充分利用FPGA实现扫描功能。增加了1字节压缩类型,4字节的键值对数量和restarts键数量,这样使得CSD不需要POLARDB存储引擎传递块大小即可直接解压,同时可以高效处理restarts,并探测块结束情况。

2cafdc1c-fa1e-11ed-90ce-dac502259ad0.png

由于FPGA难以实现多类型比较器,因此作者进一步修改POLARDB存储引擎,将所有数据都存储成同一的可比较格式,这样CSD只需要实现单一类型比较器,有助于降低FPGA资源开销。

在实现时,作者采用了终端的FPGA同时用作闪存管理和存储计算单元,集成了软LDPC编码器,因此可以使用低成本的3D TLC/QLC以降低成本。作者使用FPGA实现了2个数据解压引擎和3个数据扫描引擎,支持 支持Snappy解压和=, ≠、>、≥、<、≤、NULL和!NULL条件。

2cb8eeb0-fa1e-11ed-90ce-dac502259ad0.png

评估

为了实际可用,CSD需要在满足存储计算的同时提供一流的IO性能,因此作者使用64层3D-TLC闪存,并支持了PCIe GEN3x4接口,达到了3.0GB/s和2.2GB/s的顺序读、写带宽,并做到在满盘、GC触发时590K/160K的4K随机读、写IOPS。在解压性能上,CSD的两个解压引擎实现了在60%和30%压缩率下,2.3GB/s和2.8GB/s的总解压吞吐量。

在使用TPC-H基准测试的LINEITEM表作为测试负载测试下,作者分别对比了下移扫描任务前后整体的扫描延迟和PCIe数据流量。对比项共有4个,分别是基于CPU、不进行压缩的扫描下移;基于CSD,无压缩的扫描下移;基于CPU有Snappy压缩的扫描下移以及基于CSD、有Snappy压缩的扫描下移。测试结果表明:相对于基于CPU的扫描下移,CSD将平均扫描延迟从55s降低到39s,同时CPU占用率从514%降低到140%,收益最低的TS-6测试项中,延迟依然从65s下降到53s,同时CPU利用率从558%降低到374%。测试同时发现,基于CSD的负载中,CPU负载与数据选择性正相关,即传输到CPU的数据越少,CPU负载越低,而基于CPU的扫描则与数据选择性无关。这说明基于CSD的扫描效率更高,且效率随着CSD规模增加可以扩展。

2cbe7da8-fa1e-11ed-90ce-dac502259ad0.png

而从PCIe流量对比中可以发现,CSD的数据移动量更少,因此额外功耗更低。

2cc5a72c-fa1e-11ed-90ce-dac502259ad0.png

之后作者进行了系统级评估,在POLARDB的云实例上运行TPC-H负载进行测试。每个实例运行32个SQL引擎容器,分布在7个数据库节点和3个后端存储节点上,每个存储节点包括12个3.7TB的CSD。分别考虑3个场景:1. 基准场景,即所有数据由存储节点传输到数据库节点进行处理;2. 基于CPU的下移场景,即扫描任务下移到存储节点的CPU上;3. 基于CSD的下移场景,即扫描任务下移到CSD上。

2cced8c4-fa1e-11ed-90ce-dac502259ad0.png

测试结果表明,随着请求数量增加,基于CSD的下移相比基于CPU的下移带来更多的延迟性能提升,这是由于随着并行请求数量增长,每个存储节点有更多的并行扫描任务,更利于硬件并行化;另外,基于CSD的下移在表进行压缩时表现出更高的性能提升,这是由于基于CPU的下移需要更多资源进行解压。

流量测试结果表明,基于CSD的扫描下移相比与基于CPU的扫描下移,在7个TPC-H并行查询时可以降低50%的PCIe流量,最大PCIe传输流量降低了97%,而12个并行TPC-H查询的网络总流量降低了70%。

总结

本文报告了跨软-硬件协同的阿里云关系型数据库POLARDBDA设计优化,以更高效处理分析型负载。其基本思想是将高开销的表扫描操作分发到CSD中,核心思想简单且与当前异构计算的工业趋势吻合。测试结果表明本文的设计在查询测试中可以获得超过30%的延迟性能提升,同时减少50%的存储-内存数据移动。作者表示,希望本工作可以激励更多关于如何在云基础设施更好利用CSD的探索。

The End

致谢

感谢本次论文解读者,来自华东师范大学的硕士生黄奕阳,主要研究方向为存储压缩、存储计算。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储
    +关注

    关注

    12

    文章

    3847

    浏览量

    84639
  • SSD
    SSD
    +关注

    关注

    20

    文章

    2684

    浏览量

    115418
  • 数据库
    +关注

    关注

    7

    文章

    3584

    浏览量

    63346
  • 阿里云
    +关注

    关注

    3

    文章

    883

    浏览量

    42602
  • 云原生
    +关注

    关注

    0

    文章

    222

    浏览量

    7841

原文标题:使用可计算SSD加速云原生数据库

文章出处:【微信号:SSDFans,微信公众号:SSDFans】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ICDE:POLARDB定义云原生数据库

    Native DataBase成为行业标准。以下为阿里云资深技术专家蔡松露演讲实录:现在我给大家介绍一下我们的云原生数据库-POLARDB。大家可能要问到底什么是“云原生数据库”,
    发表于 04-20 18:10

    直击DTCC2018 阿里数据库技术干货全面解析

    的主题吧。1、主题:深度解析云原生数据库POLARDB直播时间:5月11日下午15:00简介:什么是“云原生数据库”,云原生
    发表于 04-27 17:58

    数据库厂商都怕低价竞争?阿里云说并不可惧

    ,我们来看看云原生数据库由内而外有哪些具体的与众不同?经过优化的计算和存储引擎使得POLARDB读性能可达百万QPS,写性能超过13万QPS;采用计算节点和存储节点分离的设计,满足公有
    发表于 05-11 11:02

    重新定义数据库的时刻,阿里云数据库专家带你了解POLARDB

    满足了公有云计算环境下用户业务快速弹性扩展的刚性需求,同时也满足了互联网环境下用户对数据库服务器高可用的需求。本文就带领大家了解什么是“云原生数据库”,
    发表于 05-30 16:58

    云栖干货回顾 | 云原生数据库POLARDB专场“硬核”解析

    POLARDB是阿里巴巴自主研发的云原生关系型数据库,目前兼容三种数据库引擎:MySQL、PostgreSQL、Oracle。POLARDB的计算能力最高可扩展至1000核以上,存储容
    发表于 10-15 15:38

    如何使用原生hqc连接MySQL数据库

    springboot项目中使用原生hqc连接MySQL数据库
    发表于 06-08 12:12

    性能提升1倍,成本直降50%!基于龙蜥指令加速的下一代云原生网关

    接入网关在硬件加速领域也迈出了第一步,开始尝试 QAT 卡硬件加速方案。在经历 Tengine QAT 的探索实践后,阿里云推出了基于开源 Envoy 构建的 MSE 云原生网关产品(参考[5
    发表于 08-31 10:46

    只需 6 步,你就可以搭建一个云原生操作系统原型

    数据库等各种严肃应用的云原生化,业务对云原生节点系统提出了严苛的诉求。比如如何保证我们节点的资源利用率?如何保证云原生应用的 QoS?如何隔离多个应用之间的故障?以及保障各个应用的
    发表于 09-15 14:01

    OLAP数据库将全面地进入云原生时代,实现会数据库就会大数据

    2020云栖大会期间,阿里巴巴正式成立云原生技术委员会,阿里巴巴高级研究员蒋江伟担任委员会负责人,达摩院数据库首席科学家李飞飞、阿里云计算平台高级研究员贾扬清、阿里云原生应用平台研究员
    的头像 发表于 09-23 15:43 3810次阅读

    云原生应用中的“云”指的是什么?

    云原生应用是独立的小规模松散耦合服务的集合,旨在提供备受认可的业务价值,例如快速融合用户反馈以实现持续改进。简而言之,通过云原生应用开发,您可以加速构建新应用,优化现有应用并在云原生
    的头像 发表于 11-27 17:24 1933次阅读

    引领云原生2.0时代,赋能新云原生企业

    十年云计算浪潮下,DevOps、容器、微服务等技术飞速发展,云原生成为潮流。Forrester首席分析师戴鲲表示,云原生是企业数字化转型的基础,企业需要建立云原生优先的战略,构建一体化
    的头像 发表于 12-11 16:04 1619次阅读

    解读腾讯云原生 鹅厂云原生的“新路”与“历承”

    在云计算产业中,云原生是一个长期讨论的“老话题”。而在今年新基建、产业数字化的宏观背景下,云原生的应用主体开始扩张,关于这条技术路径的讨论也重新火热了起来。 云原生突然“翻红”的原因,
    的头像 发表于 12-28 18:10 3261次阅读

    从云计算的初心尝试谈谈什么是真正的云原生

    不同云厂商的说法。2020年9月,阿里云成立了云原生技术委员会,今天我就从云计算的初心尝试谈谈什么是真正的云原生。 狭义的云原生 让我们先回顾云原生
    的头像 发表于 02-12 09:20 1728次阅读

    华为云云原生数据库,激发数据活力

    华为云云原生数据库 ,激发数据活力 伴随数字化转型步入“深水区”,企业的业务需求迭代迅速,数据量和并发访问量呈指数级增长,传统关系型数据库
    的头像 发表于 01-12 20:26 384次阅读

    深耕数据库根技术,华为云云原生数据库推动汽车产业数智升级

    了福佑卡车基地,并分享了华为云云原生数据库的最新技术和发展方向,以云原生力量全新推动汽车产业的数智升级。 汽车产业数智升级加速,福佑卡车迎势而上 随着汽车市场的蓬勃发展,业内专家提出了
    的头像 发表于 06-29 16:44 238次阅读
    深耕<b class='flag-5'>数据库</b>根技术,华为云<b class='flag-5'>云原生</b><b class='flag-5'>数据库</b>推动汽车产业数智升级