纵向扩容即为同一台机器添加额外的核以增加算力。纵向扩容是传统上为单对控制器和多核的机器增加算力的常见形式。纵向扩容架构受限于控制器的可扩展性。
MOT旨在实现以下目标:
说明: MOT的近线性扩容效果明显优于所有现有方案,并且尽可能接近于获得最佳效果,因现有方案皆受限于硬件(如电线)的物理限制和局限性。
为了实现上述要求(特别是在多核的环境中),我们存储引擎的体系结构实施了以下技术和策略:
MOT遵循并利用了openGauss的标准扩展机制——外部数据封装(FDW),如下图所示。
在PostgreSQL外部数据封装特性的支持下,作为其他数据源的代理的MOT数据库可以创建外表,如MySQL、Oracle、PostgreSQL等。当对外表执行查询时,FDW将查询外部数据源并返回结果,就像查询内表一样。
openGauss依赖PostgreSQL外部数据封装和索引支持,因此SQL完全覆盖,包括存储过程、用户定义函数、系统函数调用。
上图中绿色表示MOT引擎,蓝色表示现有的openGauss(基于Postgres)组件。由此可见,FDW在MOT引擎和openGauss组件之间进行中介。
与MOT相关的FDW定制
通过FDW集成MOT可以重用最上层的openGauss功能,从而显著缩短MOT的上市时间,同时不影响SQL的覆盖范围。
但是,openGauss中原有的FDW机制并不是为存储引擎扩展而设计的,因此缺少以下基本功能:
为了支持所有缺失的功能,SQL层和FDW接口层已扩展,从而为插入MOT事务存储引擎提供必要的基础设施。
以下是上述MOT设计原则和实现的结果:
MOT在符合ACID工作负载的事务吞吐量方面优于所有现有的工业级OLTP数据库。
openGauss和MOT在以下多核系统上进行了测试,性能可扩展性良好。在x86架构Intel和ARM/鲲鹏架构的多核服务器上进行了测试。详细的性能评估请参见MOT性能基准。
以2020年6月的TPC-C基准测试了一台泰山2480服务器上的openGauss MOT数据库(4路ARM/鲲鹏服务器,吞吐量:480万tpmC)。下图显示了MOT数据库的近线性性质,即MOT数据库通过增加核数显著提高性能。
下面是另一个测试示例,一台基于x86的服务器上也显示了CPU使用率。
图表显示,MOT性能提高与核数增加有显著的相关性。随着核数的增加,MOT对CPU的消耗也越来越大。其他行业解决方案不能提高MOT性能,有时性能甚至略有下降,影响客户的CAPEX和OPEX支出以及运营效率。这是数据库行业的公认问题。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。