高斯数据库GaussDB华为公司过去10年打造的一款高性能OLTP交易型数据库产品,在迭代演进过程当中吸纳当今主流数据的技术与思路,确保架构和演进层面的领先性,在达到高性能的同时能够保证事务的强一致性,在国内泛金融领域、保险、等主要行业、公司内部ERP等有广泛的应用和成功落地实践。
首先,高斯数据库从架构层面需要保证处理能力可持续提升、可横向扩展,避免某一单点问题阻碍上限的提升,因此最初架构演进上就做过深入的考虑,因此在相同代码基础上同时具备分布式、集中式两种不同的部署形态,这里集中式部署形态决定了单节点(单分片)的性能上限,而分布式将多个数据分片结合到一起通过横向扩展提升总体上限。因此从产品架构维度上看,高斯数据库的高性能技术点可分成集中式、分布式两个优化维度。
(1)集中式性能维度,主要聚焦数据库进程内的算法实现,其目标在于将节点内有限计算资源有效最大化利用。
首先,从查询执行算法的宏观维度,优化器通过查询重写、CBO/ABO代价模型确保查询整体执行步骤最优;
其次,执行引擎将执行计划内的每个算子执行效率发挥出来,通过节点内SMP对称多线程并行处理技术将多核CPU资源加以利用实现处理任务时序在时间维度重叠达到提升,通过算子Vec向量化、CodeGen/LLVM化等技术实现局部编译器执行,确保了CPU指令集微观层的优化效果,此外集中式场景还考虑单节点大容量数据场景,执行层面提供了丰富可选数据分区策略(Range、List、Hash、Interval、二级组合分区)能够根据用户业务的定义对数据查询范围进行数量级的裁剪,通过ustore存储引擎确保读写混合负载长稳性能以及空间节省,同时为了保证数据的强一致性处理WAL日志落盘也进行了异步流水化改造提升单位时间内日志持久化落盘的速率,进而提升读写事务的性能。
再次,在性能稳定性层面,同样做了线程池化、内存共享化改造能够确保并发线程在内存、CPU调度之间得到平衡,能够在极致并发场景下如5x(相对满负荷负载并发)并发性能不显著下降,十倍甚至百倍并发系统不崩溃,并已在公司MetaERP


2243

被折叠的 条评论
为什么被折叠?



