MOT应用场景
MOT可以根据负载的特点,显著加快应用程序的整体性能。MOT通过提高数据访问和事务执行的效率,并通过消除并发执行事务之间的锁和锁存争用,最大程度地减少重定向,从而提高了事务处理的性能。
MOT的极速不仅因为它在内存中,还因为它围绕并发内存使用管理进行了优化。数据存储、访问和处理算法从头开始设计,以利用内存和高并发计算的最新先进技术。
openGauss允许应用程序随意组合MOT和基于标准磁盘的表。对于启用已证明是瓶颈的最活跃、高争用和对性能敏感的应用程序表,以及需要可预测的低延迟访问和高吞吐量的表来说,MOT特别有用。
MOT可用于各种应用,例如:
- 高吞吐事务处理:这是使用MOT的主要场景,因为它支持海量事务,同时要求单个事务的延迟较低。这类应用的例子有实时决策系统、支付系统、金融工具交易、体育博彩、移动游戏、广告投放等。
- 性能瓶颈加速:存在高争用现象的表可以通过使用MOT受益,即使该表是磁盘表。由于延迟更低、竞争和锁更少以及服务器吞吐量能力增加,此类表(除了相关表和在查询和事务中一起引用的表之外)的转换使得性能显著提升。
- 消除中间层缓存:云计算和移动应用往往会有周期性或峰值的高工作负载。此外,许多应用都有80%以上负载是读负载,并伴有频繁的重复查询。为了满足峰值负载单独要求,以及降低响应延迟提供最佳的用户体验,应用程序通常会部署中间缓存层。这样的附加层增加了开发的复杂性和时间,也增加了运营成本。MOT提供了一个很好的替代方案,通过一致的高性能数据存储来简化应用架构,缩短开发周期,降低CAPEX和OPEX成本。
- 大规模流数据提取:MOT可以满足云端(针对移动、M2M和物联网)、事务处理(Transactional Processing,TP)、分析处理(Analytical Processing,AP)和机器学习(Machine Learning,ML)的大规模流数据的提取要求。MOT尤其擅长持续快速地同时提取来自许多不同来源的大量数据。这些数据可以在以后进行处理、转换,并在速度较慢的基于磁盘的表中进行移动。另外,MOT还可以查询到一致的、最新的数据,从而得出实时结果。在有许多实时数据流的物联网和云计算应用中,通常会有专门的数据摄取和处理。例如,一个Apache Kafka集群可以用来提取10万个事件/秒的数据,延迟为10ms。一个周期性的批处理任务会将收集到的数据收集起来,并将转换格式,放入关系型数据库中进行进一步分析。MOT可以通过将数据流直接存储在MOT关系表中,为分析和决策做好准备,从而支持这样的场景(同时消除单独的数据处理层)。这样可以更快地收集和处理数据,MOT避免了代价高昂的分层和缓慢的批处理,提高了一致性,增加了分析数据的实时性,同时降低了总拥有成本(Total Cost of Ownership,TCO)。
- 降低TCO:提高资源利用率和消除中间层可以节省30%到90%的TCO。友商案例:MemSQL、Azure。
MOT性能基准
我们的性能测试是基于业界和学术界通用的TPC-C基准。
测试使用了BenchmarkSQL(请参见MOT样例TPC-C基准),并且使用交互式SQL命令而不是存储过程来生成工作负载。
说明: 使用存储过程方法可能会产生更高的性能结果,因为它需要大大减少网络往返和数据库封装SQL处理周期。
评估openGauss MOT性能和磁盘性能的所有测试都使用了同步日志记录和在MOT中优化的group-commit=on版本。
最后我们进行了额外测试,评估MOT快速采集大量数据的能力,并将其作为中间层数据采集解决方案的替代方案。
2020年6月完成全部测试。
下面是各种类型的MOT性能基准:
MOT硬件
本次测试使用的服务器满足10GbE组网和以下配置:
- 基于Arm64/鲲鹏920的2路服务器,型号为TaiShan 2280 v2(128核),800GB RAM,1TB NVMe盘。操作系统为openEuler。
- 基于Arm64/鲲鹏960的4路服务器,型号为TaiShan 2480 v2(256核),512GB RAM,1TB NVMe盘。操作系统为openEuler。
- 戴尔x86服务器,2路英特尔至强金牌6154 CPU @ 3Ghz,18核(超线程开启时共72核),1TB RAM,1TB SSD。操作系统为CentOS 7.6。
- x86超微服务器,8路英特尔(R)至强(R) CPU E7-8890 v4 @ 2.20GHz,24核(超线程开启共384核),1TB RAM,1.2 TB SSD(希捷1200 SSD 200GB,SAS 12Gb/s)。操作系统为Ubuntu 16.04.2 LTS。
- 华为x86服务器,4路英特尔(R)至强(R) CPU E7-8890 v4 @ 2.2Ghz(超线程开启共96核),512GB RAM,SSD 2TB。操作系统为CentOS 7.6。
MOT测试总结
MOT比磁盘表性能提升2.5至4.1倍,在Arm/鲲鹏256核服务器上达到480万tpmC。测试结果清楚表明MOT在扩展和利用所有硬件资源方面的卓越能力。随着CPU槽位和服务器核数增加,性能会随之跃升。
MOT在Arm/鲲鹏架构下最高可达3万tpmC/核,在x86架构下最高可达4万tpmC/核。
由于持久性机制更高效,MOT中的复制开销在Arm/鲲鹏主备高可用场景下为7%,在x86服务器中为2%。而磁盘表的开销在Arm/鲲鹏中为20%,在x86中为15%。
最终,MOT延迟降低2.5倍,TPC-C事务响应速度提升2至7倍。