G术时刻 |GBase 8a数据库双活容灾方案解析之同步原理(一)

0 阅读2分钟

南大通用GBase 8a数据库(gbase database)基于列存引擎与分片同步机制,构建了完整的双活容灾方案。核心同步工具GVR依托sync_client+sync_server组件,实现主备集群间增量数据毫秒级同步,点对点速度达450MB/s,支持同城双活、异地容灾、读写分离等场景。
通过元数据快照优化,同步期间主集群业务读写几乎不受影响。目前方案已在国内某国有大行落地40+套双活集群,为主仓及重要集市提供“热备”级灾备保障,RPO趋近于零,RTO分钟级。

存储原理

GBase 8a 是列存数据库,每张逻辑数据表横向分成多个数据列,每个数据列纵向分成多个存储单位 DC(最小 IO 单元)

image.png

  • DC:DataCell,存储单元,连续 64K 行(65536)数据成为一个 DC 数据包,是 IO 的基本单位

  • DC 文件(seg 文件):多个 DC 组成一个 seg 文件,默认按照 2G 大小进行分裂

  • 元数据文件:记录每个 DC 的 SCN、所在 seg 文件、偏移量、记录数等信息

分片表同步工具

GBase 8a 提供分片间进行分片表同步的同步工具。同步工具与每个 GNode 节点一起部署。

  • 包含 sync_client 和 sync_server 两部分。
  • sync_client 与 sync_server 之间通过网络进行通信和数据传输
  • sync_server 持续运行(默认 5288 端口),监听来自 sync_client 的通信请求。
  • 由需要同步的节点上的 sync_client 访问具备有效数据的节点上的 sync_server。
  • sync_server 可以同时与多个 sync_client 进行通信
  • sync_client 和 sync_server 可以解析表的元数据文件和数据文件,并对文件进行读写操作。