嬴图数据库是通过在编程语言层面最大化挖掘底层硬件产出的高性能、高密度并发、实时图数据库。因此,其底层核心存储与计算引擎、查询语言解析器与优化器代码都采用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的核数更多,意味着更高的潜在的并发能力)、能耗低(精简指令集的优点)、芯片与系统尺寸更小。当然,其缺点是,它在真正的工业级服务器上的应用的性能、范围与稳定性还有待时间与场景的检验。
无论如何,同心尚科技看到了市场上的这个趋势,其产品嬴图作为世界上最快的图数据库系统,责无旁贷地需要把对ARM CPU的支持放在与X86 CPU同等的地位对待。
我们在对ARM架构CPU的支持过程中,实现了嬴图数据库系统各组件的全面ARM架构支持,主要包含如下工作:
1.原生支持ARM 64位平台,非虚拟化或仿真实现——代码级原生支持;
2.性能与X86-64平台保持一致——图查询、图算法等操作;
3.图算法对ARM架构进行全方面优化——并发效能、内存管理等;
4.嬴图数据库产品矩阵全面支持——可视化工具,命令行工具,数据迁移等
在这个过程中,我们也发现了很多有趣的问题,例如,在虚拟ARM主机的环境下和过往X86虚机环境的差异性、在同主频情况下ARM的性能似乎普遍低于X86(具体的量化指标可能和具体的主机厂家的优化,甚至和虚拟实现方式有关,30%是个比较常见的性能下降);在高并发条件下,ARM的多线程、多核间的调度效率也明显低于X86。毕竟,ARM作为服务器级CPU支撑,它还是很年轻的产品。相信假以时日,在业界的共同推动下,ARM会走得更远。
最后,嬴图数据库作为全球率先全面支持ARM架构的自研、原生、高密度并发图数据库,在新的一年中会赋能更多的客户与场景,与大家共勉!