乐趣区

关于白皮书:龙蜥白皮书精选利用-iouring-提升数据库系统性能

文 / 高性能存储 SIG

01 背景介绍

传统的 IO 软件栈曾经无奈齐全开释出高性能存储设备的性能,高性能 IO 栈是以后存储畛域重点钻研的课题之一,代表性的如用户态计划 SPDK,以及规范的内核态计划 io_uring。

02 关键技术

Linux 社区从零开始设计一种全新的异步 IO 框架 io_uring。io_uring 为了防止在提交和实现事件中的内存拷贝,设计了一对共享的 ring buffer 用于应用程序和内核之间的通信。该设计带来的益处有:

  • 提交、实现申请时无需利用和内核之间的内存拷贝。
  • 应用 SQPOLL 高级个性时,应用程序无需零碎调用。
  • 无锁操作,用 Memory Ordering 实现同步等。

龙蜥社区自 2020 年上半年开始参加 io_uring 社区开发,奉献了多个个性和优化,并在图数据库场景摸索容器化部署和针对性优化。

技术劣势:应用程序通过对立的规范零碎调用来应用 io_uring。相比传统的 Linux Native AIO,io_uring 打消了仅反对 Direct IO 的限度以及额定的内存拷贝开销;相比用户态框架 SPDK,io_uring 可复用 Linux 内核的规范驱动,无需额定的用户态驱动开发,利用场景更通用,编程接口更敌对。

该技术特点包含:

  • 简略易用,不便利用集成。
  • 可扩大,不仅仅为存储 IO 应用,同样能够用于网络 IO。
  • 个性丰盛,满足所有利用,如反对 Buffer IO。
  • 高效,尤其是针对大部分 512 字节或 4K IO 场景。
  • 可伸缩,满足峰值场景的性能须要等。

利用场景:io_uring 可实用于绝大多数对异步 IO 有诉求的业务和利用。目前,io_uring 已在多个支流开源利用中集成,如 RocksDB、Netty、QEMU、SPDK、PostgreSQL、MariaDB 等。

03 图数据库引擎 iGraph 优化实际

图计算服务 Graph Compute 是龙蜥社区理事长单位阿里云研发的高性能分布式图计算产品,反对简单图关系数据的存储、查问和计算,高效对接图算法与模型,在搜寻举荐广告、实时风控、常识图谱、社交网络等场景有着宽泛的利用。其内核引擎 iGraph 在基于磁盘的查问拜访场景下引入了 io_uring,反对高 IOPS 下稳固运行。

实际成果:图数据库引擎 iGraph 通过 io_uring 适配优化后,线上运行环境在 CPU 开销不高于原始应用 Linux Native AIO 版本的前提下,业务端到端时延优化达 20%。

更多龙蜥白皮书精选内容:

【1】面向 DPU 场景的软硬协同协定栈

【2】麻利开发场景下的调度器热降级 SDK

【3】跨云 - 边 - 端的只读文件系统 EROFS

【4】龙蜥全面反对 Intel 第四代可扩大处理器 SPR 平台

【5】面向异构计算的加速器 SDK

【6】基于 SM4 算法的文件加密(fscrypt)实际

【7】CentOS 迁徙场景的平滑迁徙计划

相干链接:

高性能存储 SIG 主页:https://openanolis.cn/sig/high-perf-storage

更多龙蜥技术个性解析可移步《龙蜥个性百科》:https://anolis.gitee.io/anolis_features/

2022 龙蜥社区全景白皮书(或公众号【OpenAnolis 龙蜥】回复关键字“白皮书”获取)https://openanolis.cn/openanoliswhitepaper

—— 完 ——

为给大家提供更好的内容和服务,龙蜥社区诚挚地邀请大家参加问卷调研,请扫描下方二维码或点此链接填写,咱们将筛选出优质反馈,送出龙蜥周边!

退出移动版