分布式图数据库关键技术的设计与实现
发布时间:2021-01-20 01:36
当前互联网系统时刻都在产生海量非结构化、相互关联的数据,这些数据往往由于系统不断演进不具备统一的格式,并且对象类型千变万化,对象之间关系复杂多变。图数据库作为一种新型的专门为存储图数据而设计的数据库,能够很好适应这种数据应用场景,它是当前一个研究热点。目前图数据库的发展中的困难和瓶颈主要集中在两个方面。其一,如何设计一个基于原生图存储的数据库,而不是简单的在其它类型数据库存储引擎的基础上进行语义封装。如果不能在存储层就考虑到图数据的邻近性和关系查询,其性能必然得不到本质的提升。其二,如何提供一个具有丰富图查询能力的计算层,它可以为用户提供一种基于图的思想来查询数据库的能力。其它类型的查询语言在对图数据查询的表达上有着先天不足,不足以胜任图数据库的查询工作。本文提出了一个高性能分布式图数据库架构以解决以下技术难点:1.本文中采用基于Hash的数据分布算法来在分布式场景下基于图数据的临近性高效地索引点和边。通过将图划分为多个分片,并使用专门设计的数据存储格式和在物理上选择相近的位置存储等方法来加速点和边的索引。2.本文采用额外的抽象层和基于表格的数据抽象保证所有的算子具有一个通用的基于事件...
【文章来源】:电子科技大学四川省 211工程院校 985工程院校 教育部直属院校
【文章页数】:86 页
【学位级别】:硕士
【部分图文】:
简单查询的AST语法树
第五章性能测试65图5-4则展示了其生成的逻辑执行计划。可以看到,其产生的逻辑执行是符合预期的。图框中圈出的第二行的ProduceResult算子后描述表示会返回其中的id属性。图5-4逻辑执行计划生成的物理执行计划如图5-5。从图中可以看到,AllNodeScan算子和ProduceResult算子均被划分为了两个分片,其中AllNodeScan算子的分片1被划分到了192.168.1.72:7777上运行的图查询节点中,分片2被划分到了192.168.1.73:7777上运行的图查询节点中,由于当前集群中一共只有2个图查询节点,因此这种划分是正确且有效的。图5-5物理执行计划接下来以更加复杂的一条语句为输入,检查整个系统是否能够正常工作:“match(n)-[]->(p)wheren.id=p.idreturnn.id”。该条语句中包含了一个一级关系查询和一次Join操作,其期望逻辑执行计划应形如图5-6。ProduceResultJoinAllNodeScanExpand图5-6复杂语句的期望执行计划其在系统执行后输出的AST语法树,逻辑执行计划和物理执行计划分别如图5-7,图5-8和图5-9。从图5-7中可以看出,AST的生成结果与第四章逻辑执行计划生成算法中提到的情况类似,AST中主要包含了MATCH和RETURN两个大的
电子科技大学硕士毕业论文66子句,其中Match子句中又包含了一个Path和一个BinaryOperator(二元运算符)。其中Path代表的是语句中“(n)-[]->(p)”这一部分,指代关系查询。BinaryOperator代表的是语句中“wheren.id=p.id”这一部分。这里的BinaryOperator的运算符(即图中的value)是“=”符号,因此可以生成Join算子。但如果遇到的是“>”之类的大小比较符,图中后续就会生成Apply算子。图5-7复杂语句的抽象语法树从图5-8中可以看出,在逻辑计划中一共生成了4个逻辑算子。位于对底层的算子是AllNodeScan算子,该算子将会做全图扫描,对应查询语句中“(n)”所代表的操作。Expand算子用于在前一个AllNodeScan算子的基础上对其按任意边进行一次扩展,对应查询语句中“(n)-[]->(p)的部分”。Join算子用于将结果集n和结果集p进行比较,取出n中与p中id相等的行,对应查询语句中“wheren.id=p.id”。最后符合条件行通过ProduceResult算子进行输出,对应查询语句中“returnn.id”。图5-8复杂语句的逻辑执行计划从图5-9中可以看出,在物理计划中一共有6个物理算子算子生成。其中逻辑执行计划中AllNodeScan算子和Expand算子被拆分成了两个物理算子,并且分别
本文编号:2988100
【文章来源】:电子科技大学四川省 211工程院校 985工程院校 教育部直属院校
【文章页数】:86 页
【学位级别】:硕士
【部分图文】:
简单查询的AST语法树
第五章性能测试65图5-4则展示了其生成的逻辑执行计划。可以看到,其产生的逻辑执行是符合预期的。图框中圈出的第二行的ProduceResult算子后描述表示会返回其中的id属性。图5-4逻辑执行计划生成的物理执行计划如图5-5。从图中可以看到,AllNodeScan算子和ProduceResult算子均被划分为了两个分片,其中AllNodeScan算子的分片1被划分到了192.168.1.72:7777上运行的图查询节点中,分片2被划分到了192.168.1.73:7777上运行的图查询节点中,由于当前集群中一共只有2个图查询节点,因此这种划分是正确且有效的。图5-5物理执行计划接下来以更加复杂的一条语句为输入,检查整个系统是否能够正常工作:“match(n)-[]->(p)wheren.id=p.idreturnn.id”。该条语句中包含了一个一级关系查询和一次Join操作,其期望逻辑执行计划应形如图5-6。ProduceResultJoinAllNodeScanExpand图5-6复杂语句的期望执行计划其在系统执行后输出的AST语法树,逻辑执行计划和物理执行计划分别如图5-7,图5-8和图5-9。从图5-7中可以看出,AST的生成结果与第四章逻辑执行计划生成算法中提到的情况类似,AST中主要包含了MATCH和RETURN两个大的
电子科技大学硕士毕业论文66子句,其中Match子句中又包含了一个Path和一个BinaryOperator(二元运算符)。其中Path代表的是语句中“(n)-[]->(p)”这一部分,指代关系查询。BinaryOperator代表的是语句中“wheren.id=p.id”这一部分。这里的BinaryOperator的运算符(即图中的value)是“=”符号,因此可以生成Join算子。但如果遇到的是“>”之类的大小比较符,图中后续就会生成Apply算子。图5-7复杂语句的抽象语法树从图5-8中可以看出,在逻辑计划中一共生成了4个逻辑算子。位于对底层的算子是AllNodeScan算子,该算子将会做全图扫描,对应查询语句中“(n)”所代表的操作。Expand算子用于在前一个AllNodeScan算子的基础上对其按任意边进行一次扩展,对应查询语句中“(n)-[]->(p)的部分”。Join算子用于将结果集n和结果集p进行比较,取出n中与p中id相等的行,对应查询语句中“wheren.id=p.id”。最后符合条件行通过ProduceResult算子进行输出,对应查询语句中“returnn.id”。图5-8复杂语句的逻辑执行计划从图5-9中可以看出,在物理计划中一共有6个物理算子算子生成。其中逻辑执行计划中AllNodeScan算子和Expand算子被拆分成了两个物理算子,并且分别
本文编号:2988100
本文链接:https://www.wllwen.com/kejilunwen/shengwushengchang/2988100.html
最近更新
教材专著