暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

GaussDB 数据库高级特性—NDP算子下推

背景介绍

  • 用户对数据库的操作可能导致大量的数据页的遍历,而数据移动及其处理的开销是影响关系型数据库系统性能的重要因素,特别是对于存储分享架构的数据库系统,数据需要通过网络从存储层发送到计算层,这样随着数据量的增加,网络开销会越来越大,不但会导致计算节点SQL的执行效率的降低,甚至会拖垮计算节点和存储的整个网络,导致整体性能下降;
  • 尽可能减少数据的移动,使得数据遍历更加高效,是计算存储分离架构的数据库面临的关键问题。可以利用NDP(Near-Data Processiong)功能来解决这个问题;

什么是NDP算子下推

  • 未使用NDP需要把所有的page从存储读到计算节点
    • 弊端:浪费大量的网络带宽和I/O资源,增加网络开销,执行效率低,响应速度慢;
  • 使用NDP后,数据库在存储层直接计算并返回结果
    • 益处:降低网络带宽和I/O资源,从而降低网络开销提高整体的查询性能。
  • Near-Data Processing (NDP) 通过将执行引擎的计算下推到GaussDB(for MySQL)的存储引擎Slice Store来实现。这样处理之后,将避免无用的元组到达计算节点,从而消除了无用的数据移动以及其相关处理的开销,特别是减少了昂贵的RDMA网络的开销。
  • 优势
    • 避免无用的元组到达计算节点;
    • 消除了无用的数据移动以及其相关处理的开销;
    • 减少了昂贵的RDMA网络的开销;
    • 大量减少网络的开销,大大提高查询性能;

NDP支持算子

  • 并不是所有的算子都适合使用NDP,条件表达式以及Aggregate是GaussDB(for MySQL)主要支持的场景;
  • 对于Aggregate,select count(*) from T也可以将count计算下推到Slice Store,这样只需要从Slice Store读取count值即可,不需要传输所有的数据页,大量减少了网络开销,尤其是在数据量较大的情况下,大大提高SQL查询性能;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论