暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

提速三倍?不止!悦数图数据库 v5.0 技术特性抢先看!

悦数图数据库 2024-07-12
146

悦数图数据库v5.0

技术预览

Technical Preview


作为杭州悦数的最新产品,悦数图数据库 v5.0 不仅是全球首家,更是目前唯一一家支持 ISO/IEC 39075:GQL 国际图查询语言标准的分布式图数据库。它使用属性图模型,集中管理和存储用户数据,并且可以使用经过市场认证的 MATCH 语句以及其他丰富的类 SQL 语句,轻松完成查询属性图。


全面拥抱 GQL :图查询的新篇章


不同于兼容或适配 GQL 的技术路线,悦数图数据库在数据库核心和底层架构进行了重构,全面拥抱  GQL。同之前版本的悦数图数据库相似,属性图的  schema 仍然是用户创建或修改,并由数据库管理的。

以下是一个使用 GQL 编写的 DDL 查询示例,该查询尝试创建一个包含一组节点类型(如 City、Country、Continent 等)和边类型(如 CITY_IS_PART_OF_COUNTRY、COUNTRY_IS_PART_OF_CONTINENT 等)的图类型。每个节点或边类型都有其类型名称(如 City)、一组可选标签(如 City、Place)和一组可选属性(如 id、name、url)。

    CREATE GRAPHTYPE IF NOT EXISTS ldbc_type AS {  
       NODE City(LABELS City&Place {id INT64 PRIMARY KEY, name STRING, url STRING}),  
       NODE Country(LABELS Country&Place {id INT64 PRIMARY KEY, name STRING, url STRING}),  
       NODE Continent(LABELS Continent&Place {id INT64 PRIMARY KEY, name STRING, url STRING}),  
       ...  
       EDGE CITY_IS_PART_OF_COUNTRY (City)-[:IS_PART_OF]->(Country),  
       EDGE COUNTRY_IS_PART_OF_CONTINENT (Country)-[:IS_PART_OF]->(Continent),  
       EDGE UNIVERSITY_IS_LOCATED_IN_CITY (University)-[:IS_LOCATED_IN]->(City),  
    }

    创建图类型后,就可以随心所欲的创建任意数量的图,这些图都将受到相同图类型的约束。


    接下来,我们使用之前创建的 ldbc_type 来创建一个名为 LDBC 的图。

      CREATE GRAPH IF NOT EXISTS LDBC TYPE ldbc_type


      构建好 LDBC 图后,用户可以使用 MATCH 查询来挖掘数据的价值,如下所示,首先声明了两个要从图中匹配的路径模式,然后按 person.id 和 message.id 属性对结果进行排序和限制,最后返回你需要的属性。

        MATCH  
        (person:Person)-[:KNOWS]->(friend:Person),  
        (message:Message)-[:HAS_CREATOR]->(friend)  
        ORDER BY person.id DESC,  
        message.id ASC  
        LIMIT
        20  
        RETURN
        friend.id AS personId,
        friend.firstName AS personFirstName,
        friend.lastName AS personLastName,  
        message.id AS postOrCommentId

        如果您想更深入的了解 GQL 相关的内容,那么 ISO 发布的《GQL 数据库语言》以及《理解 GQL:标准图查询语言的全面概述》这两份资料,将为你提供关于GQL的详细信息,包括其定义、用途、语法以及如何在图数据库中使用它进行查询和管理数据。



        焕新登场:从内到外的架构升级


        架构设计:全面升级,性能飞跃

        与 v3.0 系列相比,新版本的悦数图数据库在所有组件上均取得了根本性的技术进步。从全面支持 GQL 的新前端,到分布式架构的一致性协议,再到企业级基于规则的优化和图原生操作符支持,每一个细节都经过了技术人员的精心设计和优化。

        数据结构:紧凑高效,快如闪电

        在内存中,我们使用新设计的与 Apache Arrow 兼容的向量数据结构来存储节点和边的数据。这种紧凑的布局方式不仅减少了多达 95% 内存开销,还无需对数据进行序列化或反序列化,也无需为此过程分配临时内存空间。用户可直接在内存中进行快速的图遍历和属性检索,还能够进行不受编码和解码限制的超高速查询,享受前所未有的速度体验!

        执行器:多面优化,无所不能

        悦数图数据库 v5.0 的执行器现在能够完全以向量化方式实现所有算子,同时对向量中的所有值进行运算。这意味着用户可以充分利用现代多核处理器和 DRAM 的硬件优势,享受比老版本快 2-3 倍的查询速度。此外,新版本还实现了完全并发和流水线化的运行时,显著提高了工作时的负载平衡和多核处理器利用率,并解决了 NUMA 问题。另外,新版本还支持子查询计划下推、细颗粒度的内存管理等功能,助力高效查询。

        存储引擎:优化编码,更快更稳

        新版本的存储引擎得到了全面优化,实现了更快的 KV 编码和前缀扫描。同时,还引入了分区中的分桶的概念,让数据平衡和迁移变得更加快速和简单。用户还可以在创建图后更改分区数,享受更灵活的数据管理体验!

        插件与程序:扩展性强,功能丰富

        在新版本中,我们还支持添加插件和开发程序的功能。用户可以像使用 PostgreSQL 等流行数据库一样,将插件插入数据库内核,实现更多自定义功能。同时,新版本支持使用 C++ 开发程序,并在 GQL 查询中调用它们,享受更好的性能和复用性!



        性能对比:3 倍提速,多快好省



        测试环境

        一个三节点集群

        64 核 Intel 8352Y CPU,2.20GHz,

        256GB DRAM

        2TB SSDs

        比例因子(SF)为 100

        测试结果

        在同一环境下,以查询延迟的第 99 百分位数作为指标,新版本的悦数图数据库 v5.0 相较于 v3.7 版本的性能提升了 1.01 到 6.43 倍,平均提升 3.01 倍。而且所有 v5.0 上的查询均采用已发布为国际标准的 GQL 编写,而 v3.7则使用 openCypher 进行编写。这意味着,用户仅需使用声明式查询语言即可轻松获得卓越性能,无需依赖复杂的 C++ 过程。


        以 Q1 查询为例,v5.0 的速度是 v3.7 的 3.82 倍,同时其进程峰值内存占用比 v3.7 减少了 64.47%。综上所述,新版本悦数图数据库能以约 1/3 的内存资源实现 3 倍以上的性能提升。



        语句示例

          printf("hello USE ldbc
          MATCH
           (p:Person{id:2}),
           (friend:Person{firstName:"Kyle"})
          WHERE
           p<>friend
          MATCH
           path1 = ANY SHORTEST PATH (p)-[:KNOWS]-{1,3}(friend)
          RETURN
           min(length(path1)) AS distance,
           friend GROUP BY friend
          NEXT
          USE ldbc
          ORDER BY
           distance ASC,
           friend.lastName ASC,
           friend.id ASC
          LIMIT
           20
          MATCH
           (friend)-[:IS_LOCATED_IN]->(friendCity:City)
          OPTIONAL MATCH
           (friend)-[studyAt:STUDY_AT]->(uni:University)-[:IS_LOCATED_IN]->(uniCity:City)
          RETURN
           collect(CASE WHEN NOT uni.name IS NULL THEN RECORD
               {uniName:uni.name,
               studyAtClassYear:studyAt.classYear,
               uniCityName:uniCity.name} END
             ) AS unis,
           friend,
           friendCity,
           distance GROUP BY friend,
           friendCity,
           distance
          NEXT
          USE ldbc
          OPTIONAL MATCH
           (friend)-[workAt:WORK_AT]->(company:Company)-[:IS_LOCATED_IN]->(companyCountry:Country)
          RETURN
           collect(CASE WHEN NOT company.name is null THEN RECORD
               {companyName:company.name,
               workAtWorkFrom:workAt.workFrom,
               companyCountryName:companyCountry.name} END
             ) AS companies,
           friend,
           unis,
           friendCity,
           distance GROUP BY friend,
           unis,
           friendCity,
           distance
          NEXT
          USE ldbc
          ORDER BY
           distance ASC,
           friend.lastName ASC,
           friend.id ASC
          LIMIT 20
          RETURN
           friend.id AS friendId,
           friend.lastName AS friendLastName,
           distance AS distanceFromPerson,
           friend.birthday AS friendBirthday,
           friend.creationDate AS friendCreationDate,
           friend.gender AS friendGender,
           friend.browserUsed AS friendBrowserUsed,
           friend.locationIP AS friendLocationIp,
           friend.email AS friendEmails,
           friend.speaks AS friendLanguages,
           friendCity.name AS friendCityName,
           unis AS friendUniversities,
           companies AS friendCompanies
          world!");


          悦数图数据库

          GQL 的先行者,性能与效率再创新高


          悦数图数据库 v5.0 是首个也是目前唯一一个支持 GQL 标准的分布式图数据库。它不仅允许用户以标准化的方式开发应用程序,还结合了最新的数据库技术和对图原生特性的全面语法支持。通过 LDBC SNB 基准测试评估,v5.0 的平均速度比目前最先进的 v3.7 版快 3 倍,内存效率也提高了约 3 倍!随着正式发布的临近,我们将在更多场景下发布更多的评估结果,敬请期待!


          如果您对使用悦数图数据库 v5.0 感兴趣,请点击阅读原文与我们联系。

          联系我们丨杭州悦数科技有限公司

          咨询邮箱:contact@yueshu.com.cn

          咨询热线:(+86)0571-58009980

          (工作日 09:30-18:30)


          < PAST · 往期回顾 >

           点击「阅读原文」联系我们

          最后修改时间:2024-07-12 10:32:39
          文章转载自悦数图数据库,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

          评论