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