南大通用GBase 8s SSC集群网络交互信息概述(上)

原文链接:
https://www.gbase.cn/community/post/4040
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

在当今数据驱动的商业环境中,数据库的性能和可靠性是企业成功的关键。GBase 8s作为一款的国产数据库系统,其SSC集群架构通过优化网络交互,显著提升了性能和可用性。本文将分两部分聚焦于GBase 8s SSC集群的网络交互信息概述和网络吞吐量计算。

在GBase 8s SSC集群中,主节点向从节点只传输网络心跳、逻辑日志当前位置信息等内容即可,并不需要传输逻辑日志,SSC从节点只需根据主节点的最新LSN号从共享磁盘读取逻辑日志即可,这样减少了网络的信息传递,也减少网络延迟等网络因素对同步性能的影响,因此,在SSC集群中,节点间网络传输相比逻辑日志写入要少很多,网络的传输量并不大,尽可能减少了网络性能对SSC集群性能的影响。

在只有一个从节点的SSC集群情况下,假定TPCC测试在400并发下性能为100万tpmc,主从节点间的网络吞吐量理论最大约为3.5MB/s,SSC主节点发送PPS为16666.7包/s。此场景下忽略了其他主从间其他的消息交互,实际测试场景下,网络吞吐量要高于此理论值。

同时,在SSC从节点支持更新的场景下,假定TPCC中只包含neworder业务并且直接在SSC从节点执行测试,如果TPCC性能达到100万tpmc,则网络吞吐量为248.9 MB/s,SSC从节点发送PPS达到400000包/s。

一、SSC集群架构与工作原理

GBase 8s SSC集群为共享存储集群,允许多个数据库实例同时访问、操作同一数据库,具有高可用、高性能、负责均衡等特性,且支持故障自动切换和故障自动重加入。

1、SSC集群架构

图1 SSC集群架构图

2、SSC集群工作原理

图2 SSC集群工作原理

相比与HDR和RSS集群,SSC集群并不需要在主从节点间传输逻辑日志文件,主节点只需向从节点发送逻辑日志当前位置信息即可,而SSC从节点可以根据接收到的LSN从共享存储获取,具体的工作原理如下:

(1)主节点完成数据更细,并发送当前LSN (Log Sequence Number)给SSC从节点。

(2) SSC从节点接收到主节点发送的LSN,并从磁盘读取更新的逻辑日志。

(3)SSC从节点重做逻辑日志更新内存中数据。

(4)SSC从节点返回LSN ACK。

除此之外,与其他集群类型类似,SSC集群主节点和从节点之间,需要定时发送心跳信息,以维护集群状态。

二、网络交互的优化

无负载场景

SSC集群在没有业务情况下,主节点每秒通过网络给从节点发送网络心跳,在有业务时,当逻辑日志buffer刷新到磁盘时,主节点向从节点发送当前的LSN。主从间的消息时序图如下:

图3 时序图

心跳包由MACH11_PING和IamAlive类型消息组成,其中MACH11_PING类型消息长度为24字节,IamAlive类型消息长度为16字节。SSC从节点收到心跳包后回复ACK包,包括MACH11_PINGACK和IamAlive类型消息。

在有业务时,主节点发送的数据包由logLPG和MACH11_PING类型消息组成,SSC从节点收到后回复的数据包由logLSN和MACH11_PINGACK类型消息组成,各种消息的长度如下表:

消息类型

消息长度(字节)

MACH11_PING

24

MACH11_PINGACK

16

IamAlive

16

logLPG

28

logLSN

24

每个数据包的组成如下图

图4 数据包组成图

其中SMX Header的长度为20个字节。

由上可知,在无业务的情况下,各种数据包在网络发送时长度如下:

  • 主节点发送的心跳包的长度为20+24+16=60字节,加上以太网首部、网络IP首部和TCP首部的长度总和至少为54字节(14+20+20),心跳网络包的长度为54+60=114字节;
  •  SSC从节点对心跳的ACK网络包长度为54+16+16=86字节;

在有业务的情况下,各种数据包在网络发送时长度如下:

  • LSN网络包的长度为54+20+28+24=126字节;
  • SSC从节点的LSN ACK网络包长度为54+24+16=94字节。

三、SSC从节点支持更新操作

当在SSC集群 UPDATABLE_SECONDARY 被设置为非零时,SSC从节点支持更新操作,详细的过程如下:

(1)SSC从节点server接收到更新操作时,进行语法、语义解析并将语法树转CB,包括生成执行计划。

(2)SSC从节点将执行计划和相关相信同步给主节点。

(3)主节点接收到SSC从节点发送的消息后,执行更新操作。

(4)主节点完成数据更新后,同步结果给SSC从节点。

以DML操作为例,当SSC从节点执行更新操作时,主从节点间的消息时序图如下:

图5 SSC从节点更新时序图

SSC从节点执行DML操作时,各类消息的长度如下表:

消息类型

消息组成

消息长度(字节)

ProxyWriteBeginWork

Vector[0]: 消息头

Vector[1]: Begin消息内容

176

ProxyWriteInsert

Vector[0]: 消息头

Vector[1]: DML消息首部

Vector[2]: 行镜像

Vector[3]: col bitmap buffer长度

Vector[4]: col bitmap buffer内容

Vector[5]: 隔离级别(可选,每个事务发一次)

108 + 行长 + col_bitmap_buffer长度

ProxyWriteDelete

Vector[0]: 消息头

Vector[1]: DML消息首部

Vector[2]: 行镜像

Vector[3]: col bitmap buffer长度

Vector[4]: col bitmap buffer内容

Vector[5]: 隔离级别(可选,每个事务发一次)

108 + 行长 + col_bitmap_buffer长度

ProxyWriteUpdate

Vector[0]: 消息头

Vector[1]: DML消息首部

Vector[2]: 行前镜像

Vector[3]: 行后镜像

Vector[4]: col bitmap buffer长度

Vector[5]: col bitmap buffer内容

Vector[6]: 隔离级别(可选,每个事务发一次)

108 + 行长*2 + col_bitmap_buffer长度

ProxyWriteSync

Vector[0]: 消息头

Vector[1]: Sync消息内容(可选,主回复SSC从节点时添加此内容)

28(SSCàPri)

68(PriàSSC)

ProxyWriteFlush2LSN

Vector[0]: 消息头

Vector[1]: LSN

36

ProxyWriteCommit

Vector[0]: 消息头28

每个数据包的组成同图4,SMX Header的长度为20个字节,如图5所示,一条单Insert sql的事务需要发送3个网络包,假定操作表有三列且行长为40(此时col bitmap buffer的长度为4),则3组网络包具体信息如下:

第一组网络包信息如下:

  • SSC从节点发送给主节点的网络包由ProxyWriteBeginWork、ProxyWriteInsert和ProxyWriteSync三类消息组成,加上以太网首部、网络IP首部和TCP首部的长度总和至少为54字节(14+20+20),此包的长度为54+20+176+(108+40+4)+28=430字节。
  • 主节点的回复网络包由ProxyWriteSync类型消息组成,此包的长度为54+20+68=142字节。

第二组网络包信息如下:

  • SSC从节点发送给主节点的网络包由ProxyWriteCommit类型消息组成,此包的长度为54+20+28=102字节。
  • 主节点的回复网络包由ProxyWriteSync类型消息组成,此包的长度为54+20+68=142字节。

第三组网络包信息如下:

  • SSC从节点发送给主节点的网络包由ProxyWriteBeginWork、ProxyWriteFlush2LSN和ProxyWriteCommit三类消息组成,此包的长度为54+20+176+36+28=314字节。
  • 主节点的回复网络包由ProxyWriteSync类型消息组成,此包的长度为54+20+68=142字节。

南大通用GBase 8s SSC集群的网络交互机制是其高性能的关键。通过减少不必要的数据传输,SSC集群能够在保持数据一致性的同时,实现快速的业务处理和故障恢复。下篇文章,我们将深入探讨SSC集群在不同业务场景下的网络吞吐量,敬请期待。

 原文链接:
https://www.gbase.cn/community/post/4040
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

  • 14
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
gbase8s是国产数据库解决方案,而ssc(Shared Storage Cluster)是一种存储集群技术。在搭建gbase8s ssc环境时,需要进行以下步骤: 1. 准备硬件设备:首先,需要准备一组服务器作为存储节点和数据库节点。这些服务器应具备足够的计算能力、存储容量和网络带宽。此外,还需要至少一个共享存储设备,如SAN(Storage Area Network)或NAS(Network Attached Storage)。 2. 安装操作系统:在每台服务器上安装操作系统,可以选择适合gbase8s ssc环境的操作系统,如CentOS、Red Hat等。 3. 配置网络:配置服务器的网络设置,确保每个节点能够相互通信,并且能够与共享存储设备连接。 4. 安装gbase8s:在每台数据库节点上安装gbase8s数据库软件。按照官方文档的指引,进行软件安装和配置,确保节点能够正常启动。 5. 配置ssc:根据要求,配置共享存储设备并将其连接到存储节点。随后,通过gbase8sssc配置工具,配置ssc集群。这包括定义存储空间、创建存储池以及指定存储节点等。 6. 启动集群:经过配置后,可以启动gbase8s ssc集群。确保所有节点都能够成功启动,并且能够正常访问共享存储设备。 7. 测试和优化:在集群启动后,进行一系列的测试和优化工作,以确保集群的稳定性和性能。可以使用工具对集群进行负载测试,并根据测试结果进行必要的调整。 总之,搭建gbase8s ssc环境需要准备硬件设备、安装操作系统和数据库软件,配置网络ssc集群,并进行测试和优化。这些步骤都需要按照官方文档的指引进行,并确保各个节点能够正常通信和访问共享存储设备。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值