Ultipa图数据库是通过在编程语言层面最大化挖掘底层硬件产出的高性能、高密度并发、实时图数据库。因此,其底层核心存储与计算引擎、查询语言解析器与优化器代码都采用C/C++实现,并通过最大化X86-64架构的并发来实现数据库系统的高并发与低延迟。
X86系统是CISC(复杂指令集)架构,经过过去近半个世纪的发展,它的芯片的设计越来越复杂,能耗越来越高,尽管在高性能计算领域最著名的Top-500项目中有95%以上的系统都采用Intel X86(XEON)CPU架构构建,市场上有越来越多的声音开始支持基于RISC(精简指令集)的ARM架构——从最初的智能手机上的ARM架构,到苹果的Macbook系列抛弃Intel改用M1(基于ARM)芯片组,直至今天越来越多服务器厂家开始基于ARM SoC(一体化系统)芯片来构建信创服务器。
ARM相比于X86而言,的确有一些优点,多核(相比X86的核数更多,意味着更高的潜在的并发能力)、能耗低(精简指令集的优点)、芯片与系统尺寸更小。当然,其缺点是,它在真正的工业级服务器上的应用的性能、范围与稳定性还有待时间与场景的检验。
无论如何,Ultipa看到了市场上的这个趋势,Ultipa作为世界上最快的图数据库系统,责无旁贷地需要把对ARM CPU的支持放在与X86 CPU同等的地位对待。
我们在对ARM架构CPU的支持过程中,实现了Ultipa图数据库系统各组件的全面ARM架构支持,主要包含如下工作:
1.原生支持ARM 64位平台,非虚拟化或仿真实现——代码级原生支持; 2.性能与X86-64平台保持一致——图查询、图算法等操作; 3.图算法对ARM架构进行全方面优化——并发效能、内存管理等; 4.Ultipa图数据库产品矩阵全面支持——可视化工具,命令行工具,数据迁移等
在这个过程中,我们也发现了很多有趣的问题,例如,在虚拟ARM主机的环境下和过往X86虚机环境的差异性、在同主频情况下ARM的性能似乎普遍低于X86(具体的量化指标可能和具体的主机厂家的优化,甚至和虚拟实现方式有关,30%是个比较常见的性能下降);在高并发条件下,ARM的多线程、多核间的调度效率也明显低于X86。毕竟,ARM作为服务器级CPU支撑,它还是很年轻的产品。相信假以时日,在业界的共同推动下,ARM会走得更远。
最后,Ultipa图数据库作为全球率先全面支持ARM架构的自研、原生、高密度并发图数据库,在新的一年中会赋能更多的客户与场景,与大家共勉!
?
|