1、沃趣科技 魏兴华通过RDMA加速国产PG分布式数据库PostgreSQL中文社区PostgreSQL中文社区QST(RDMA Based)加速跨节点网络通信QST加速GaussDB分布式集群内部数据网络bond1-数据内联【25G以太】Bond0-业务【万兆】业务网络Bond0-业务【万兆】Bond0-业务【万兆】bond1-数据内联【25G以太】bond1-数据内联【25G以太】CNCNCNDatanodeDatanodeDatanodeDatanodeDatanodeDatanodeDatanodeDatanodeDatanode千兆管理口千兆管理口千兆管理口QST是沃趣自研的通过使用RD
2、MA来加速跨节点网路通讯的技术对上层数据库业务透明,是通用的加速网络跨节点通信的基础设施QST类似于Oracle RAC中的RDS(12C版本后Exadata升级为Exafusion Direct-to-Wire Protocol)分布式GaussDB架构图PostgreSQL中文社区QST,RDMA Based,专为高性能计算而生Socket BasedUser SpaceKernelUser SpaceKernelHWHWAppAppAppAppNICNICHCAHCAUser SpaceKernelHWUser SpaceKernelHWQST,RDMA BasedTCPIPTCPIPT
3、CPIPNIC_drvNIC_drvbufbufbufbufbufbufbufbuf不需要经过OS的网络协议栈Socket BufferPostgreSQL中文社区QST,RDMA Based,Zero Copy&Kernel Bypass零拷贝:由于没有将数据拷贝到内核态并处理数据包头部的过程,传输延迟会显著减小(UserSpace Buffer&Socket Buffer&NIC Buffer)Kernel Bypass:不需要内核参与,应用程序直接在用户态执行数据传输CPU Offload:无需CPU干预,应用程序可以访问远程主机内存而不消耗远程主机中的CPUSocket Buffer,
4、在内核层封包&解包Kernel BypassApplicationHardwareKernel传统TCP/IP数据传输通路RDMA高性能网络数据传输通路bufferdatadatadataTCPTCPTCPIPIPMACMemorycopyNICLRH/MACdataETHBTHGRH/IPHCAbufferProtocol Offload卸载到硬件层处理PostgreSQL中文社区缘起-开启QST,性能几乎无提升?!测试场景BenchmarkSQL测试,启用QST,观察QST为分布式数据库跨节点网络通信提速的效果测试结果性能几乎无提升?!PostgreSQL中文社区分布式数据库中可被QST加
5、速的场景这些场景都存在或多或少的RPC信息交互分布式事务分布式join(广播、分发)全局事务号/快照号csnRaft Log全局索引维护复制表数据重平衡等POC、TPC-C等场景中,存在一些POC开关,或者性能测试开关,可以规避正常业务情况下的一些性能问题PostgreSQL中文社区Table Group-消除分布式事务/join的利器在比较多的分布式数据库中,都存在一种Table Group类似的技术,将有关联的数据物理存储在一起GaussDB、TDSQL默认的分表行为(合适的分区键、分区数)Oceanbase 中的Table GroupOracle中的Table FamilyPolarDB
6、-X中的Table Group另外,复制表技术(TiDB木有)也是为了降低数据的跨节点传输而设计PostgreSQL中文社区Table Group举例以Oceanbase数据库中的Table Group为例Z1、Z2、Z3 三个Zone,每个Zone 包含1个节点,每一个节点有完整的一个数据副本A表、B表,都为分区表,用身份证号作为分区键,定义为6个分区例如图中A1 1-100,主副本在Z1,承担读写,Z2,Z3作为follow,通过raft保持同步*实线为leader副本*虚线为镜像副本Zone 1 副本1Zone 2 副本2Zone 3 副本3A1 1-100A2 101-200A3 20