GBase 8a
备份恢复
文章
精选

GBase 8a同步原理及GVR提升点

发表于2025-10-27 19:33:41454次浏览4个评论

GBase 8a同步原理及GVR提升点

一、GBase 8a同步原理

在分布式数据库领域,数据同步是保障数据一致性、系统高可用的关键环节。GBase 8a作为一款高性能分布式数据库,其同步原理围绕数据存储单元设计与分片间同步工具展开,形成了一套高效且可靠的同步机制。

(1)数据存储的底层逻辑:DC与元数据

GBase 8a对逻辑数据表采用了列存储+分块管理的设计思路,这是其同步原理的基础。

  • 数据列与存储单元(DC): 每张逻辑数据表横向被拆分为多个数据列,每个数据列纵向又被划分为多个存储单元(DC,DataCell)。一个DC是连续64K行数据的集合,是GBase 8a中IO操作的基本单位,这种设计让数据读写更高效。
  • DC文件(seg文件): 多个DC会被打包成一个DC文件(也称为seg文件)。为了避免单个文件过大影响性能,当文件大小达到2G时会自动分裂。
  • 元数据文件: 元数据文件是数据同步的“导航图”,它记录了每个DC的关键信息,包括SCN(系统变更号,用于标识数据版本)、所在seg文件、偏移量、记录数等。这些信息是判断数据是否存在差异、实现精准同步的核心依据。

(2)分片间同步工具:sync_client与sync_server

GBase 8a的分片间同步依赖于sync_client和sync_server两个组件,它们与每个GNode节点一起部署,通过网络通信实现数据传输。

  • 组件分工:

    • sync_server:持续运行,默认监听5288端口,负责接收sync_client的通信请求,可同时与多个sync_client建立连接。
    • sync_client:由需要同步数据的节点发起,主动访问持有有效数据节点上的sync_server。
  • 功能特性: 两者都具备解析表的元数据文件和数据文件的能力,可对文件执行读写操作,这为数据的比对与同步提供了技术支撑。

(3)同步流程:从元数据比对到数据覆盖

GBase 8a的同步过程是一个精准且分层的流程,确保只同步存在差异的数据,提升效率。

  1. 建立连接与发起请求: sync_client通过5288端口连接到sync_server,发送需要同步的分片表信息。
  2. 元数据定位与返回: sync_server接收到请求后,定位该表的元数据信息,并将部分元数据返回给sync_client。
  3. 元数据比对与差异识别: sync_client在本地比对元数据信息,确定存在差异的DC(数据存储单元),并将“差异DC列表”发送给sync_server。
  4. 差异数据传输: sync_server根据列表返回对应的差异DC数据,同时返回该表的元数据文件。
  5. 数据与元数据覆盖: sync_client接收差异数据和元数据文件后,在本地完成差异DC数据的覆盖以及元数据信息的更新,最终实现数据同步。

二、GBase Visio Rsynctool

在GBase 8a的同步体系中,除了基础的分片间同步机制,还有针对锁表优化、集群双活及任务调度的高级工具,进一步提升同步的效率与可用性。

GBase Visio Rsynctool(GVR):可视化集群双活同步工具

GBase Visio Rsynctool是专为GBase 8a MPP Cluster设计的集群间同步工具,具备可视化管理、任务调度与性能优化等特性。

1. 架构与功能

  • 前端服务:提供可视化网页和API接口,支持用户操作与系统集成。
  • 后端服务:包含用户认证、授权、同步设置、数据源管理、任务管理与调度等模块,结合日志记录和配置库保障功能运行。
  • 底层脚本与同步数据库:通过配置文件接入和同步脚本,实现源端到目标端的高效数据同步。

2. 预同步机制:精准缩小同步范围

预同步基于表SCN号(系统变更号)对比原理,只同步主备集群中不一致的表,大幅缩短整体同步时间:

  • 主备集群节点需安装getscn服务,用于采集表的SCN号;
  • GVR将采集结果加载到临时表中对比,计算出不一致的表范围;
  • 可自由选择是否开启(小数据量、少节点场景可不用),且getscn支持可视化管理。 image.png

3. 拆分调度机制:突破性能瓶颈

针对gcluster_rsynctool单脚本运行导致的性能下降、内存不释放问题,GVR采用拆分调度优化:

  • 将单个同步任务拆分为多个rsynctool子任务,每个子任务执行10个表同步后即终止并释放资源;
  • 性能提升2~3倍,同步业务量越大,提升效果越明显。 image.png

通过gcluster_rsynctool的锁表优化,以及GBase Visio Rsynctool的可视化管理、预同步和拆分调度机制,GBase 8a在集群双活、大规模数据同步场景下的效率与可用性得到了进一步增强,既能保障数据一致性,又能满足业务对读写性能和同步时效性的要求。

评论

登录后才可以发表评论
用户头像
GBase用户28017发表于 11个月前
学习。
冰凤发表于 10个月前
优秀
冰凤发表于 10个月前
666
流泪猫猫头发表于 4个月前
学习了