首页 > 其他分享 >openGauss-资源池化算子卸载

openGauss-资源池化算子卸载

时间:2024-08-29 09:28:38浏览次数:8  
标签:存储 场景 卸载 池化 算子 openGauss 节点

openGauss- 资源池化算子卸载

可获得性

本特性自openGauss 5.1.0 版本开始引入。

特性简介

共享存储虽然带来弹性,可靠性的好处,但是和本地盘单机比较性能会下降较多,主要是网络IO和分布式存储自身带来的延迟,尤其对于大规模查询buffer pool无法缓存的场景,大量的数据需要从存储节点搬运到计算节点,这些批量数据经过滤后大部分场景有效数据内容占比非常少,耗费大量的无用网络IO时间,性能较差。通过算子卸载将数据过滤卸载到存储侧执行,去除不需要的数据,从而减少网络通信数据量,提升端到端性能。

图 1 资源池化算子卸载方案

客户价值

资源池化场景下大量查询通过网络获取非必要数据后进行分析处理,影响查询性能。对于大部分使用场景为查询业务的用户可以选择将数据预处理放在存储侧执行,过滤掉非必要数据减少网络传输数据量,提升查询性能。

特性描述

openGauss资源池化算子卸载特性支持Agg、SeqScan、Filter、Projection的逻辑在存储节点上运行,将过滤、投影或聚合后的结果传输到计算节点,计算节点对接收的NDP结果继续处理输出上层算子或者聚合NDP结果,业务对算子卸载无感知。此特性可以减少网络传输的数据IO,同时也可以利用存储节点的算力,提升查询的性能。本特性总体方案分为两部分:

计算侧数据库内核

  • 以插件的方式提供数据库内核算子卸载功能,不能算子卸载的场景按照内核原有流程执行
  • 决定适合算子卸载的场景只有收益/可以卸载的场景才进行卸载,不能算子卸载的场景按照内核原有流程执行
  • 构造算子卸载的上下文信息包括snapshot、clog、csnlog、expr,表的schema等信息发送到存储侧libsmartscan进程
  • 通过DSS获取文件位置对应存储单元(条带)信息,构造NDP请求发送到对应的存储节点上处理。对于不在Buffer Pool(当前读节点及写节点)中PAGE/BLOCK进行NDP处理,否则按照原有内核流程执行
  • 获取存储节点NDP处理后数据的特殊处理,输出到上层算子或者汇聚中间结果

存储侧libsmartscan进程

  • 提供近存储数据计算的功能
  • 通过存储的接口以存储的语义读取数据,只会读取存储节点的本地数据
  • 解析数据并对可见性进行判断,无法判断可见性或者无法获取对应版本数据(ustore场景)对应的PAGE/BLOCK交由计算侧原始流程处理
  • 对可见的数据进行过滤、聚合、投影等操作并返回处理后的数据到计算节点

计算侧算子卸载并不会改变原有的执行计划以及算子的相关信息,通过存储引擎接口hook实现NDP数据的处理逻辑屏蔽执行引擎感知卸载的存在。

插件安装与使能见:ndpplugin-Extension

特性增强

无。

特性约束

  • 本特性仅支持在资源池化部署下使用。
  • 暂时仅支持shared_preload_libraries方式加载插件
  • 暂不支持Toast表场景
  • 暂不支持ustore场景
  • 暂不支持synchronize_seqscans

依赖关系

无。

详情查看:https://opengauss.org

详情查看:https://docs-opengauss.osinfra.cn

标签:存储,场景,卸载,池化,算子,openGauss,节点
From: https://www.cnblogs.com/xiaoxu0211/p/18385869

相关文章

  • openGauss-资源池化特性说明
    openGauss-资源池化特性说明可获得性本特性自openGauss3.1.1版本开始引入。特性简介本特性提供主备机共享一份存储的能力,实现基于磁阵设备的资源池化HA部署形态,解决传统HA部署下存储容量较单机翻倍的问题,同时备机支持实时一致性读。资源池化架构图如下图所示。图1资源......
  • openGauss-主备机
    openGauss-主备机可获得性本特性自openGauss1.0.0版本开始支持DN主备。特性简介为了保证故障的可恢复,需要将数据写多份,设置主备多个副本,通过日志进行数据同步,可以实现节点故障、停止后重启等情况下,openGauss能够保证故障之前的数据无丢失,满足ACID特性。客户价值主备机功......
  • openGauss-资源标签机制
    openGauss-资源标签机制可获得性本特性自openGauss1.1.0版本开始引入。特性简介数据库资源是指数据库所记录的各类对象,包括数据库、模式、表、列、视图、触发器等,数据库对象越多,数据库资源的分类管理就越繁琐。资源标签机制是一种通过对具有某类相同“特征”的数据库资源进......
  • openGauss-资源池化
    openGauss-资源池化资源池化特性说明资源池化性能优化备机事务内透明写转发DSS功能增强资源池化算子卸载资源池化主备双集群容灾极致RTO按需回放DSS线程池资源池化多机并行资源池化可维护性增强在线reformMESworker线程池化详情查看:http......
  • openGauss-主备高可用能力增强
    openGauss-主备高可用能力增强可获得性本特性自openGauss5.1.0版本开始引入。特性简介针对备机异常的场景,优化主机的业务在最大可用模式下不阻塞,并且表的垃圾回收不受影响。客户价值当同步备机异常时,例如磁盘故障,导致备机长时间阻塞在写盘上,而主机的synchronous_commit设......
  • openGauss-指定节点升级
    openGauss-指定节点升级可获得性本特性自openGauss3.1.0版本开始引入。特性简介在灰度升级下支持升级指定的部分节点,再升级剩余节点。客户价值在灰度升级下,提供一种升级指定部分节点的功能。保证在不中断业务的情况下,先升级部分节点再升级剩余节点。特性描述指定节点升......
  • openGauss-智能基数估计
    openGauss-智能基数估计可获得性本特性自openGauss3.1.0版本开始引入。特性简介智能基数估计利用库内轻量级算法进行多列数据分布建模,并且提供多列等值基数估计的能力。在数据分布倾斜并且列之间相关性强的数据场景下能够提供更准确的估计结果,从而给优化器提供准确的代价参......
  • OpenGauss中循环语句
    在OpenGauss(以及很多其他的SQL数据库系统中),循环语句不是SQL的一部分,因为SQL主要被设计为处理数据的查询、更新、插入和删除等操作,而不包括传统编程语言中的控制流语句(如循环和条件语句)。然而,OpenGauss提供了PL/pgSQL(PostgreSQL的过程语言的一个变种,也被OpenGauss......
  • openGauss-Anomaly_detection_数据库指标采集_预测与异常监控
    Anomaly-detection:数据库指标采集、预测与异常监控可获得性本特性自openGauss1.1.0版本开始引入。特性简介anomaly_detection是openGauss集成的、可以用于数据库指标采集、预测以及异常监控与诊断的AI工具,是dbmind套间中的一个组件。支持采集的信息包括IO_Read、IO_Write、CPU......
  • openGauss-CBO优化器
    openGauss-CBO优化器可获得性本特性自openGauss1.0.0版本开始引入。特性简介openGauss优化器是基于代价的优化(Cost-BasedOptimization,简称CBO)。客户价值openGaussCBO优化器能够在众多计划中依据代价选出最高效的执行计划,最大限度的满足客户业务要求。特性描述在CBO优......