深入学习Gremlin(20):遍历栅栏barrier

本文深入解析了Gremlin中的遍历栅栏barrier,介绍其如何强制改变深度优先搜索为广度优先搜索,并通过层的bulking模式优化数据访问。通过实例展示了barrier在遍历过程中的作用,同时提到了LazyBarrierStrategy及其默认策略。还讨论了隐式插入barrier的Step,如order(), sample(), dedup()等。最后,文章提及了barrier在计算特征向量中心性中的应用。" 8786524,1020413,RT-Thread内存管理源码解析:初始化与分配,"['RTT', '内存管理', 'heap']
摘要由CSDN通过智能技术生成

第20期 Gremlin Steps:

barrier()

本系列文章的Gremlin示例均在HugeGraph图数据库上执行,环境搭建可参考准备Gremlin执行环境,本文示例均以其中的“TinkerPop关系图”为初始数据,如下图所示:

init-data

上一期:深入学习Gremlin(19):结果存取口袋sack

遍历栅栏说明

Gremlin在路径遍历的时候,可以将栅栏barrier插入到懒加载的遍历流水线中,以使得barrier之前的步骤都执行完成之后再继续往下执行。barrier主要有2个好处:1、可以强制改变深度优先搜索为广度优先搜索,2、由于通过层的bulking模式可以优化大量重复的数据访问。

下面讲解实现上述功能的具体Step:

  • barrier(): 在某个位置插入一个栅栏,以强制该位置之前的步骤必须都执行完成才可以继续往后执行,比如g.V().both().barrier().both()只有在第一个both()全部完成之后才会执行第二个both()
实例讲解

下面通过实例来深入理解每一个操作。

  1. Step barrier(): 遍历时设置栅栏

    示例1:

    // 将所有顶点打印出来
    // 打印完一轮之后再打印一轮
    def list=[]
    g.V().sideEffect{
         list.add("first: "+it)}
         .barrier()
         .sideEffect{
         list.add("second: "
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值