Halo Tech

NAC读写分离架构

    经过持续的研发与优化,我司对Halo数据库的Near application cluster(近实时应用集群,以下简称NAC)读写分离架构进行了多次迭代更新,进一步提升了系统的性能、稳定性与易用性。现将本次架构的主要功能与特性汇报如下:

一、架构概述

    新一代NAC读写分离架构基于数据库主从复制技术,并融合我司自研的智能SQL路由引擎,实现了对数据库请求的精准识别与高效分发。该架构能够自动将写操作及特定高级功能路由至主节点执行,而读操作则由本地或从节点处理,显著降低了主库负载,提升了系统整体吞吐能力。

二、核心功能特性

    1.基础读写分离

  • 读操作:由本地节点处理,提升查询效率。

  • 写操作:自动转发至主库执行并返回结果,确保数据一致性。

    2.DDL语句处理

  • 所有DDL(数据定义语言)语句默认发送至主库执行,保障元数据一致性。

    3.DML语句处理

  • 包括INSERT、UPDATE、DELETE、MERGE在内的所有DML(数据操纵语言)语句均由主库执行。

    4.参数设置与查询

  • SHOW命令:本地执行,快速响应。

  • SET及ALTER SESSION SET:本地执行的同时发送至主库执行(会话级别参数)。

  • ALTER SYSTEM SET:默认仅本地执行(数据库级别参数)。

  • ALTER GLOBAL SYSTEM SET:本地与主库同步执行。

    5.执行计划分析

  • EXPLAIN:本地执行,用于查询计划预览。

  • EXPLAIN ANALYZE:由主库执行,获取真实执行计划。

    6.临时表操作

  • 所有临时表相关语句均发送至主库执行,确保事务一致性。

    7.预处理语句

  • PREPARE、DEALLOCATE:主备节点同步执行。

  • EXECUTE:发送至主库执行,并根据网络状态智能选择报文格式(如遇重连则发送PE,正常状态下发送E)。

    8.视图与规则

  • 支持视图访问,对于包含写函数的RULE规则命令,自动路由至主库执行。

    9.函数与存储过程

  • 支持自定义函数/存储过程,用户需根据业务逻辑自行设定读写属性。

    10.匿名块与事务块

  • 匿名块及事务块均由主库处理,保障事务完整性。

    11.数据导入(COPY命令)

  • COPY命令由主库执行,确保数据写入一致性。

    12.Package支持

  • 支持数据库Package功能,具体执行节点根据内容自动判断。

    13.扩展查询

  • 全面支持扩展查询功能,满足复杂查询需求。

三、简单演示

    在备库执行建表、插入、查询、更新、删除、删表等读写操作。

Image
Image

    在主库的日志中,我们可以清楚的看到备库转发过来的操作。

Image

四、总结

    本次NAC读写分离架构的升级,进一步提升了我司数据库产品的性能与可靠性。通过智能SQL路由与多场景适配,既保障了数据一致性,又实现了负载的合理分发,为大规模数据处理与高并发访问提供了坚实基础。

    感谢各位同仁一直以来的支持与关注,我们将持续优化产品,为客户提供更优质的服务。