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

华为GaussDB A 介绍

墨天轮 2019-10-12
1617

GaussDB 200介绍

简介

GaussDB 200是一个分布式并行关系型数据库系统。提供了以下功能:

  • 标准SQL支持

    支持标准的SQL-92/SQL:1999/SQL:2003规范,支持GBK和UTF-8字符集,支持SQL标准函数与分析函数,支持存储过程。

  • 数据库存储管理功能

    支持表空间,支持在线扩容功能。

  • 提供组件管理和数据节点HA(High Availability)

    支持数据库事务ACID特性(即原子性Atomicity、一致性Consistency、隔离性Isolation和持久性Durability),支持单节点故障恢复,支持负载均衡等。

  • 应用程序接口

    支持标准JDBC 4.0的特性和ODBC 3.5特性。

  • 安全管理

    支持SSL安全网络连接、用户权限管理、密码管理、安全审计等功能,保证数据库在管理层、应用层、系统层和网络层的安全性。

结构

GaussDB 200采用Share-nothing架构,由多个拥有独立且互不共享CPU、内存、存储等系统资源的节点组成。在这样的系统架构中,业务数据被分散存储在多个物理节点上,数据分析任务被推送到数据所在位置就近执行,通过控制模块的协调,并行地完成大规模的数据处理工作,实现对数据处理的快速响应。

Share-nothing又称为无共享架构,和其他架构的对比请参见图1。

图1 架构对比

Share-nothing架构具备如下优点:

  • 最易于扩展的架构
    • 为商业智能BI(Business Intelligence)和数据分析的高并发、大数据量计算提供按需扩展的能力
    • 自动化的并行处理机制
  • 内部自动并行处理,无需人工分区或优化
    • 数据加载与访问方式与一般数据库相同
    • 数据分布在所有的并行节点上
    • 每个节点只处理其中一部分数据
  • 最优化的I/O处理
    • 所有的节点同时进行并行处理
    • 节点之间完全无共享,无I/O冲突
  • 增加节点实现存储、查询及加载性能的线性扩展

GaussDB 200由多个MPPDBServer组成,GaussDB 200结构具体如图2所示。

图2 GaussDB 200结构
表1 模块说明

名称

描述

MPPDBServer(CM)

GaussDB 200集群管理模块CM(Cluster Manager),即含CMServer进程的特殊MPPDBServer,负责管理和监控分布式系统中各个功能单元和物理资源的运行情况,确保整个系统的稳定运行。CM分为主CM和备CM。正常情况下,只由主CM提供GaussDB 200集群管理服务。当主CM发生故障的情况下,备CM会主动升为主CM提供GaussDB 200集群管理服务。

CM通过CM服务完成对各个MPPDBServer管理。CM服务由CMServer、CMAgent、Monitor组成。

  • CMServer是整个GaussDB 200集群的大脑,它会根据CMAgent上报上来的各MPPDBServer状态信息来决定是否需要状态变更。CMServer只部署在主备CM上。
  • CMAgent是MPPDBServer上面部署的实例代理线程,负责接收CMServer下发的命令和上报MPPDBServer的Coordinator、Datanode、GTM的状态给CMServer。每个MPPDBServer均会部署一个CMAgent,也包括主备CM和主备GTM。
  • Monitor是watchdog定时任务,其唯一的任务是在CMAgent停止的情况下将CMAgent重启。每个MPPDBServer均会部署一个Monitor,也包括主备CM和主备GTM。

MPPDBServer(GTM)

全局事务管理模块GTM(Global Transaction Manager),即含GTM进程的特殊MPPDBServer,负责生成和维护全局事务ID、事务快照、时间戳等需要全局唯一的信息。GTM分为主GTM和备GTM。正常情况下,只由主GTM提供全局事务管理服务。当主GTM发生故障的情况下,备GTM会主动升为主GTM提供服务。

MPPDBServer

业务模块,即除MPPDBServer(CM)、MPPDBServer(GTM)以外的MPPDBServer,由Coordinator及多个Datanode组成,负责执行CM、GTM下发的任务。业务模块与MPPDBServer(CM)、MPPDBServer(GTM)主要区别是不包含CMServer与GTM进程。

Coordinator(CN)

负责提供外部应用接口、优化全局执行计划、向Datanode分发执行计划,以及汇总、处理执行结果。

GaussDB 200通过CCN(Control Coordinator Node)负责集群内的资源全局负载控制,以实现自适应的动态负载管理。CM在第一次集群启动时,通过集群部署形式,选择编号最小的Coordinator作为CCN。若CCN故障之后,由CM选择新的CCN进行替换。

Datanode(DN)

在集群中,DN有多个。每个DN存储了一部分数据。如果DN无高可用方案,则故障时会导致该实例上的数据无法访问。因此GaussDB 200对DN提供了高可用方案:主、备、从备。DN主、备、从备间的工作原理如下:

主、备DN同步数据期间,如果主DN突然故障不可用,备DN会升为主DN。

在原主DN恢复前,新升为主的DN会将数据日志同步到从备DN。

原主DN恢复后将成为备DN,并且会使用“从备DN”上的数据日志恢复异常期间的数据。

也就是说从备DN永远只作为从备使用,不会因为主DN或备DN故障而升级为主DN或备DN,从备只存放备DN故障时同步到从备的Xlog数据和数据通道复制产生的数据。

Storage

服务器的本地存储资源,持久化存储数据(支持行存、列存、混合存储)。

原理

作为关系型数据库系统,GaussDB 200主要业务为数据的查询与存储。GaussDB 200进行数据查询的流程如图3所示。

图3 数据查询流程

具体查询流程如下:

  • 用户通过应用程序发出查询本地数据的SQL请求到Coordinator。
  • Coordinator接收用户的SQL请求,分配服务进程,向GTM请求分配全局事务信息。
  • GTM接收到Coordinator的请求,返回全局事务信息给Coordinator。
  • Coordinator根据数据分布信息以及系统元信息,解析SQL为查询计划树,从查询计划树中提取可以发送到Datanode的执行步骤,封装成SQL语句或者子执行计划树,发送到Datanode执行。
  • Datanode接收到读取任务后,查询具体Storage上的本地数据块。
  • Datanode任务执行后,将执行结果返回给Coordinator。
  • Coordinator将查询结果通过应用程序返回给用户。

GaussDB 200数据存储流程与数据查询流程相近,请参考数据查询流程,此处不再介绍。


查看更多:华为GaussDB 200 软件组成
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论