南大通用GBase 8a数据库(gbase database)基于列存引擎与分片同步机制,构建了完整的双活容灾方案。核心同步工具GVR依托sync_client+sync_server组件,实现主备集群间增量数据毫秒级同步,点对点速度达450MB/s,支持同城双活、异地容灾、读写分离等场景。
通过元数据快照优化,同步期间主集群业务读写几乎不受影响。目前方案已在国内某国有大行落地40+套双活集群,为主仓及重要集市提供“热备”级灾备保障,RPO趋近于零,RTO分钟级。
存储原理
GBase 8a 是列存数据库,每张逻辑数据表横向分成多个数据列,每个数据列纵向分成多个存储单位 DC(最小 IO 单元)
-
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 可以解析表的元数据文件和数据文件,并对文件进行读写操作。