“G”术时刻 |南大通用GBase 8s SSC集群架构网络交互信息概述和吞吐量计算(之二)

60 阅读4分钟

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

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

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

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

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

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

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

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

图片

图5 SSC从节点更新时序图

 

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

消息类型消息组成消息长度(字节)
ProxyWriteBeginWorkVector[0]: 消息头Vector[1]: Begin消息内容176
ProxyWriteInsertVector[0]: 消息头Vector[1]: DML消息首部Vector[2]: 行镜像Vector[3]: col bitmap buffer长度Vector[4]: col bitmap buffer内容Vector[5]: 隔离级别(可选,每个事务发一次)108 + 行长 + col_bitmap_buffer长度
ProxyWriteDeleteVector[0]: 消息头Vector[1]: DML消息首部Vector[2]: 行镜像Vector[3]: col bitmap buffer长度Vector[4]: col bitmap buffer内容Vector[5]: 隔离级别(可选,每个事务发一次)108 + 行长 + col_bitmap_buffer长度
ProxyWriteUpdateVector[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长度
ProxyWriteSyncVector[0]: 消息头Vector[1]: Sync消息内容(可选,主回复SSC从节点时添加此内容)28(SSCàPri)68(PriàSSC)
ProxyWriteFlush2LSNVector[0]: 消息头Vector[1]: LSN36
ProxyWriteCommitVector[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集群在不同业务场景下的网络吞吐量,敬请期待。