大数跨境

海致星图领航Rust应用:国内图数据库产品AtlasGraph揭秘Rust的安全与性能优势

海致星图领航Rust应用:国内图数据库产品AtlasGraph揭秘Rust的安全与性能优势 海致星图
2024-06-19
1
导读:近日,亿欧发布了题为《全球公认最安全的编程语言Rust:正式发布九周年,国内应用现状如何?》的文章。海致星图作为国内采用Rust语言进行产品开发的先行者,分享了在产品开发中采用Rust语言的经验与见解

在数字化浪潮的席卷之下,数据安全与性能已然成为企业提升竞争力的核心要素。在这样的背景下,Rust编程语言凭借其独特的内存安全特性,在全球范围内备受瞩目,并被美国官方机构推荐为关键系统开发的优选语言。作为一种将内存安全作为首要原则的编程语言,Rust于2015年发布,至今已有九年时间
近日,亿欧发布了一篇题为《全球公认最安全的编程语言Rust:正式发布九周年,国内应用现状如何?》的文章。其中,作为国内采用Rust语言进行产品开发的先行者,海致星图图数据库产品AtlasGraph负责人沈游人接受了采访,分享了在产品开发中采用Rust语言的经验与见解。
以下为亿欧发表原文:

全球公认最安全的编程语言Rust:正式发布第9年,国内应用如何?

‘作为将内存安全放在首位原则的编程语言,Rust的正式版本发布于2015年,至今已发布9年的时间。Rust为什么能够获得美国官方机构优先推荐?用它实际应用产品成绩如何?’

今年年初,美国白宫国家网络主任办公室发布报告《Back To The Building Blocks:A Path Toward Secure And Measurable Software》,建议开发者和制造商在开发关键系统和软件时,优先采用内存安全的编程语言。

事实上,在去年12月美国网络安全和基础设施局发布的《内存安全路线图指南》中,就已经指出 C 和 C++ 是内存不安全的编程语言,并呼吁软件开发商采用Rust等其他内存安全的编程语言。

01 Rust,一个将内存安全放在首位的编程语言
Rust语言到底是什么?为什么美国官方机构会优先推荐开发者使用它?
正式版本发布于2015年,Rust语言是由Mozilla主导开发的一种高效、可靠的通用高级语言。
相比于常见的C和C++语言,Rust是一个更加年轻的语言,每个时间段大众关注的问题核心存在差异,C语言更偏重于如何编写一个很好理解的语言,C++更偏重于如何编写大型的应用程序,python更关注程序脚本如何快速执行,而Rust就是一门专注于安全的系统编程语言。
微软和谷歌的工程师报告都曾指出大约70%的安全漏洞都是由内存安全问题导致的。因此,Rust语言最引人注目的特点之一是它的内存安全性。

在编程中,内存安全是一个重要但往往难以掌控的领域,它指的是程序在运行过程中是否能够正确的按照指令访问对应数据,避免出现bug或者漏洞,例如缓冲区溢出和悬空指针。有时候一些简单的错误,比如忘记释放不再使用的内存,或者在多个地方同时修改同一块内存,都可能导致程序崩溃或者其他难以预料的行为。

C和C++语言都允许使用直接内存地址来进行任意指针运算,并且没有编译器层面上的强制约束——边界检查。而Rust的内存安全功能是强制性的,Rust通过其所有权系统来解决这个问题,确保每块内存在任何时刻都只有一个所有者,当所有者离开作用域时,内存就会被自动清理。这种方式大大减少了内存泄漏和数据竞争的风险,使得Rust程序更加健壮和稳定。

除了内存安全,Rust还设计了一套复杂的类型系统,这套系统能够在编译时期就捕捉到许多潜在的错误。这意味着你可以在编写代码的同时就发现并修正错误,而不是等到程序运行后才追查问题的根源。这种早期错误检查机制不仅提高了开发效率,也增强了程序的可靠性。

Rust的性能也是其另一个显著的优势。由于Rust没有自动垃圾回收的负担,它能够提供接近C和C++的运行速度。这使得Rust非常适合用于需要高性能的场景,比如操作系统、游戏引擎以及其他对速度要求极高的系统软件开发。

很多开发者会关注Rust语言严格的编译器检查是否会延长开发时间,但根据实践反馈,虽然开发过程的大多数时间都是在解决编译问题,但一旦编译通过,开发者就不需要关心内存安全,内存泄漏等问题,反而极大的提高了开发效率。

尽管Rust的学习曲线可能会比一些主流语言如Python或Java陡峭,但其严格的编译器和详尽的文档为新手提供了良好的学习环境。而且Rust的开发社区非常活跃,社区成员不仅贡献了大量的开源库和框架,还积极参与语言本身的设计和改进。

02 除了内存安全,在产品开发中Rust的性能优势

随着社区的不断扩大和生态系统的成熟,Rust已经逐渐发展成为一款具有广泛应用前景的工业级编程语言。

在Stack Overflow的年度开发者调查报告中,Rust连续多年被评为“最受喜爱的编程语言”。在全球范围内,越来越多的公司选择用Rust进行系统开发,或者尝试用Rust进行改写。

所以,在实际开发中,与其他编程语言相比,Rust怎么样?对此,亿欧采访了海致星图图数据库产品AtlasGraph负责人沈游人。

作为国内领先的大数据与人工智能企业,海致星图是国内采用Rust语言进行产品开发的先行者。

近年来,随着数据成为新的生产要素,数据管理成为重点关注的方向。为避免由于数据库安全漏洞导致的信息泄露或者系统崩溃,2021年,海致星图与清华大学联合研发分布式图数据库产品AtlasGraph就选择了Rust语言,确保数据库的内存安全。

谈及选择Rust作为开发语言的原因,沈游人解释道,作为图数据库开发者,构建可靠安全的图数据库系统是首要任务。“首先,Rust语言严格的编译器检查能够保证我们系统的内存安全,减少大量内存泄漏和数据竞争的问题。其次,Rust语言接近C++的性能能够满足图数据库对于高吞吐量和低延迟的要求。最后,数据库需要同时提供给很多用户去使用,因此数据库系统需要一个高并发的模型,Rust作为比较现代的语言,内置的所有权模型和无数据竞争的并发机制可以让数据库系统高效处理并发操作来提高系统的可拓展性。基于这三点考虑,我们认为Rust很适合图数据库开发,所以选择了Rust作为图数据库的开发语言。”
虽然在海致星图选择Rust作为图数据库产品的开发语言时,国内还没有太多开发者使用Rust,沈游人也坦言在程序员的招聘成本和时间周期中需要投入更多,但是团队中不乏有Rust语言的早期探索者,通过互相探讨交流以及实际开发中的问题解决,海致星图逐渐壮大了产品开发队伍。

03 基于Rust语言开发的图数据库产品

数据库可以提供存储、查询、计算的能力,也决定了计算的规模、速度和稳定性,而图数据库是一种基于“图”的规则和模型来存储和计算数据的数据库。
首先需要厘清的是“图”并不是指图形或者图片,而是一种源自图论的数学结构,这一结构由顶点和边构成,顶点是实体,边代表实体之间的关系。图数据库则是以图论为理论技术,使用图模型,将关联数据的实体作为点存储,数据之间的关系作为边存储,用点和边来表达数据之间的关系。
相比于传统的关系型数据库,图数据提供了从“关系”的角度去分析问题、发现问题的能力,能够更加直观、更加准确的表现现实世界中的各类关联形态,也能够提供更好的数据关联查询能力、更高的性能和操作的灵活性。使得数据库用户能够更好地挖掘数据之间的深层次关系。
沈游人表示,图在现实生活中的应用场景非常多,现实中的数据基本都是以图的形式存在的。目前,金融行业已经全面使用图分析,其他领域对于图分析的使用趋势也在不断上升,包括能源、互联网、电信等行业都在尝试用图来解决实际业务中遇到的问题,而作为专门存储和管理图数据的数据库,图数据库已经形成一定市场规模,并处于快速发展阶段。
Gartner在2022年发布中《图数据库管理系统市场指南》曾预测:2024年,图存储和图分析将全面替代旧有的目录式数据资产管理,而海致星图正是Gartner图数据库管理系统市场指南的中国代表厂商。
海致星图AtlasGraph是一款高性能、云原生、分布式图数据库,能够处理大规模的图数据,并提供快速、准确的查询和计算结果,同时内置了海量的图计算、图学习的模型与算法,为用户提供了丰富的数据处理和分析工具。在大模型时代,AtlasGraph具有原生图向量混合存储、图神经网络等功能,作为下一代人工智能的关键基础底座,支撑海致“图模孪生”新型大模型平台以“GNN(图神经网络)+LLM”多轮交互的方式,让大模型更准确、更高效地落地到关键行业的关键场景之中。
沈游人表示,AtlasGraph最大的优势就是系统性能非常卓越。首先,AtlasGraph采用Rust作为开发语言,在安全性上不会存在内存方面的漏洞,而且在处理大规模数据时表现也会比较出色。其次,海致星图拥有一个存储和图计算的专业团队,面向图数据库系统做了大量数据优化,能够对更大规模、更复杂数据结构进行实时计算和存储响应,提供高吞吐量、低延迟、高可靠等性能。最后,数据库是数字经济基础设施的核心一环,直接关乎数据资产安全和产业安全,海致星图坚持自主创新,而AtlasGraph就是完全自主研发的图数据库,符合国家当前对基础软件系统自主可控的要求,能够适配国产硬件和操作系统部署,目前已经通过多项国家级认证。

去年年底,在LDBC SNB Interactive基准测试的最新结果中,AtlasGraph成功打破世界纪录——在100GB的SF100数据集和300GB的SF300数据集上,AtlasGraph在没有依赖任何“预计算”的情况下,于2小时内完成了共计约3.6亿次请求,QPS高达近4.9万。这充分展示了AltasGraph在处理大规模、高复杂度图数据方面的卓越性能,可以满足大规模、高实时的图计算需求。
目前,海致星图AtlasGraph已在金融科技、数字能源、智慧城市、智能交通、智能制造、智慧医疗等多个领域进行应用。沈游人表示,“我们目前主要的应用场景首先是金融行业,包括反欺诈、反洗钱以及信用评分、风险管理等,通过高效的图数据处理能力来揭示复杂的关系网络。其次是电信行业,用户之间的联络记录就是一张大图,图数据库可以用于人与人之间的社交网络分析或者客户关系管理,以及不同基站之间的网络优化,帮助运营商提高服务质量和客户满意度。第三是能源行业,电力中的IOT设备网络也是天然的一张图,可以通过数据库的精准分析提高电网能源的管理效率以及可靠性。”
这些应用场景的共同需求是对于复杂数据的高效存储、查询和分析,但由于不同行业所处的数字化阶段不同,不同场景对于图数据库的存储容量、性能和拓展性等要求存在一定差异。
随着人工智能、云计算等技术的发展和普及,数据规模以及数据之间的关系呈指数级增长。未来,应用端对数据库的性能要求将有越来越高的要求,作为国内领先的大数据与人工智能企业,选择Rust语言进行图数据库产品的自主研发只是第一步,接下来,海致星图将继续刷新行业标准,以其卓越的表现赢得市场的广泛认可,为各行业的数字化转型提供坚实的基础支撑。
亿欧网(2024年06月14日)


【声明】内容源于网络
0
0
海致星图
海致星图是中国企业知识图谱的开创者,致力于利用知识图谱,帮助机构整合数据 分析关联,产生真正智能的结果 ,从而提供给社会更好的服务,让技术更直接的提高生产力,改变世界。
内容 0
粉丝 0
海致星图 海致星图是中国企业知识图谱的开创者,致力于利用知识图谱,帮助机构整合数据 分析关联,产生真正智能的结果 ,从而提供给社会更好的服务,让技术更直接的提高生产力,改变世界。
总阅读0
粉丝0
内容0