应用办公生活信息教育商业
投稿投诉
商业财经
汽车智能
教育国际
房产环球
信息数码
热点科技
生活手机
晨报新闻
办公软件
科学动态
应用生物
体育时事

非正式全面解析NebulaGraph中Session管理

  NebulaGraph论坛最近有些讨论帖,各种姿势来问NebulaGraphSession管理相关的事情,我寻思这也不是一个法子,还是来写一篇文章来讲述下NebulaGraph中的Session管理。由于本文设定为非正式的Session讲解,所以本文主要分为理论和实操部分,在实操部分主要摘录了论坛用户的一些关于Session的理解,以及本人对Session相关问题的解答。客户端交互流程
  在之前的源码解读系列的客户端部分,我们讲过Session相关的知识点,这里来回顾下。
  通过下图你能了解客户端和服务端连接时,背后的工作原理:
  简单来说,整个workflow由ConnectionPool、Session、Connection构成,用户通过Session和计算引擎进行交互,但真正和计算引擎graphd发生数据处理关系的是连接池当中的Connection。ConnectionPool
  在连接池初始化阶段,用户使用Session之前需要先创建并初始化一个连接池ConnectionPool,连接池会在初始化时会对用户指定的NebulaGraph服务所在地址建立连接Connection。如果在用集群部署方式部署了多个Graph服务,连接池会采用轮询的策略来平衡负载,对每个地址建立近乎等量的连接。
  连接池如何管理连接Connection呢?连接池内维护了两个队列,空闲连接队列idleConnectionQueue和使用中的连接队列activeConnectionQueue,连接池会定期检测过期空闲的连接并将其关闭。这两个队列在增删元素的时候会通过读写锁来确保多线程执行的正确性。当Session向连接池请求连接时,会检查空闲连接队列中是否有可用的连接,如果有则直接返回给Session供用户使用;如果没有可用连接并且当前的总连接数没有超过配置中限定的最大连接数maxConnSize,则新建一个连接给Session;如果已经到达了最大连接数的限制,返回错误。
  大概流程和下面流程图类似:
  一般来说,只有在客户端程序退出时才需要关闭连接池,在关闭时池中所有的连接都会被断开。Session
  客户端会话Session通过连接池ConnectionPool生成,用户需要提供用户密码进行校验,在校验成功后用户会获得一个Session实例,并通过Session中的连接与服务端进行通信。最常用的接口是execute(),如果在执行时发生错误,客户端会检查错误的类型。如果是网络原因或者和session通信的graph服务down掉,客户端会自动重连,尝试绑定一个可用的连接重发请求。
  需要注意的是,一个Session不支持被多个线程同时使用,正确的方式是用多个线程申请多个Session,每个线程使用一个Session。Session被释放时,其持有的连接会被放回到连接池的空闲连接队列idleConnectionQueue中,以便于之后被其他Session复用。Connection
  连接Connection每个连接实例都是等价的,可以被任意Session持有。这样设计的目的是这些连接可以被不同的Session复用,减少反复开关Transport的开销。连接会将客户端的请求发送到服务端并将其结果返回给Session。社区用户实践
  这里主要收录了用户在使用连接池、Session遇到的比较有代表性的问题。如何获取多个Session
  可通过https:discuss。nebulagraph。com。cnttopic3765查看完整的交流对话。
  Sharry2021gu提问:连接池怎么会有多个Session呢?用来测试并发性能。像下面的pipeline里怎么才能获取不同的session?
  答:因为你给Session包了一层,你直接用javaclient的ConnectionPool拿Session就可以了,ConnectionPool是支持多线程调用getSession的接口。对Session管理的理解
  下面部分收录社区用户wuyou对Session管理的理解,你可以通过https:discuss。nebulagraph。com。cnttopic8777了解全部内容。这块的内容同上面客户端交互流程有所重叠,不过都是需要注意的使用点。NebulaPool的maxConnSize是最大连接数,一个Session只能使用一个连接,可以简单地认为maxConnSize就是这个NebulaPool里面支持的最大Session数量,适当调整就行了;NebulaPool使用常规的单例就行,应用程序结束时记得关闭就行了。Session的话可以在graph配置中设置sessionidletimeoutsecs让其自动销毁就行了;Session的创建和销毁是有开销的,会有五次IO交互:Client和Graphd会有3次IO交互以及Graphd和Metad有2次IO交互。Client和GraphdIO交互:第一次是检测连接是否是正常的;第二次是做一次认证获取sessionId;第三次是USESPACE;Graphd和MetadIO交互:第一次是生成sessionId;第二次是获取space信息。所以,一般情况下不建议每次请求都从poolgetSession,execute之后再release,这会有性能开销,而且还会在服务端生成很多只用一次的Session。Session是线程不安全的,多个线程使用同一Session会直接报错。应对多线程可以自己维护一份Session列表。如果是多个space的话,可以针对每个space维护一份session列表。这一点目前需要自己实现,暂时没有官方的好的方式。自维护Session
  wuyou提问:官方说需要自己维护Session是什么意思,感觉NebulaPool已经在维护了,应用层只需要每次直接getSession就完事儿了,每次执行完nGQL之后session。release释放掉Session,让其回到pool中就可以。
  答:这里解释下如何理解需要自己维护Session。NebulaPool维护的只是Connection,Connection是无状态的。Session的维护是指多线程使用的情况下复用Session做多次查询,比如:Session内部分sessionInUse和idleSession队列,新建的Session放idle队列,用的时候起一个线程持有这个Session并且移到inUse队列,用完之后不用释放Session放回idleSession供下次使用。Connection的释放
  wuyou提问:放回连接池的Connection什么时候会被释放?
  答:有两种方式来释放Connection。第一种,手动关闭连接池时里面的连接会被释放。另外一种是,连接池里的对象池通过setSoftMinEvictableIdleTimeMillis()自动定期释放。空闲会话超时设置
  可通过https:discuss。nebulagraph。com。cnttopic9037查看完整的交流对话。
  Ian提问:设置空闲会话超时时间为8小时,是以SHOWSESSIONS结果的updatetime来加8小时吗?如果一直在用,就不会过期?
  答:是udpatetime8H。使用过程中session的idletime会更新,如果你一直在用会话就不会过期。
  谢谢你读完本文()
  要来近距离体验一把图数据库吗?现在可以用用NebulaGraphCloud来搭建自己的图数据系统哟,快来节省大量的部署安装时间来搞定业务吧NebulaGraph阿里云计算巢现30天免费使用中
  想看源码的小伙伴可以前往GitHub阅读、使用、()star它GitHub:https:github。comvesoftincnebula

顺时养生最养人,白露时节,建议多吃3样,温和滋补度秋季导语:顺时养生最养人,白露时节,建议多吃3样,温和滋补度秋季自从立秋以来,每天喝再多的水总是感觉喉咙还是有点干燥,这就是秋燥引起的咽干,于是连续喝了几天的蜂蜜水,喉咙自然……锦州人游锦州中秋佳节,四条精品旅游线路带您感受城市独特气质锦州是一座英雄的城市,也是一座具有独特文化气质和深厚历史文化底蕴的城市。这座锦绣之州的秋季,山河壮丽,美不胜收,放松身心游走其中,感受城在林中,桥跨城中,人在画中的意境。……中老年人如何高效补钙中老年人因为体内钙质流失速度比年轻人快很多,因此,适当补钙可以预防骨质疏松、抽筋等现象的出现。不严重的缺钙,可以通过食补、适当运动和多晒太阳等方式补钙。缺钙严重的话可以通过药补……油价预测下调幅度350元吨,下一轮调价或迎来大跌,这一幕好熟上半年,在多种利好因素的推动下,国际油价及我国成品油价一路震荡上涨,实现涨多跌少的格局,汽柴油价格也创下历史较高纪录,以至于有些车主以单车当作日常出行工具,轿车放入车库等待油价……灵动岛非苹果首创?iPhone14被质疑抄袭安卓5大创新?苹果最新的iPhone14Pro系列上的灵动岛功能涉嫌抄袭安卓手机。同时,该网站还称iPhone14系列包括灵动岛在内的很多功能都是抄袭安卓手机的。首先,有人认为iPho……预计现有新能源造车新势力几乎会团灭,未来只有专注技术能活下来汽车是国家未来的发展战略,也是未来的支柱产业。新能源(包含电池和氢能源)无疑是未来发展趋势,处在最强风口的造车新势力被广泛看好。但是,从历史规律看,未来十年,现有的造车新势力能……被陕西这处黄土高原惊艳了!神秘又壮观,是鬼吹灯的取景地引导语不少游客外出旅游时都会选择一个比较热门的景点,因为这些景点之所以会受到欢迎肯定是有一定的原因的,也证明其应该是有旅游价值的,而且热门的景点往往会吸引不少人分享一些个……英雄联盟S12即将开赛,B站推出独家二路直播间派递9月4日,RNG以3:2战胜LNG,晋级S12全球总决赛成为LPL四号种子,将同JDG、TES、EDG代表LPL赛区出战S12。此前拳头游戏就早已公布,2022英雄联盟全球总决……新思路总耳鸣,体内肝火太旺!一张广为流传的方子,清肝泻火有人看了我的文章,说我真厉害,想找到我。其实,厉害二字愧不敢当。我所分享的,不过是一些浅薄的经验。实际上,还有很多前辈的好经验,想要给大家解读。闲言少叙,这篇文章,……8月造车新势力交付榜哪吒零跑蔚来破万摘要:8月,哪吒汽车UV交付16017辆,同比增长142;零跑汽车交付量达12525辆,同比增长超180;蔚来交付新车10677辆,同比增长81。6;小鹏汽车交付9578辆,同……亚坤夜读丨给现在的自己(有声)。。。。。。(节选)前几日,与几位姐姐相约,茶香轻绕时,听她们说自己的人生经历。那些一路而来的风雨或辉煌,变成过往时,才懂得不完美是人生的常态,而接受不完美的生活,就是与……佳能21年来首次新建光刻机工厂,欲将产能翻倍近日,日本佳能公司表示,将投资超500亿日元(约合24。6亿元人民币),在日本栃木县宇都宫市新建半导体设备工厂,占地面积约7万平方米,主要增产光刻设备,建成后预计产能将提高2倍……
夜雨丨陈益石缝里,长出一棵苦蒿石缝里,长出一棵苦蒿陈益后院鱼池外,石缝里长出一株小苗弱弱的,没留意因为它实在太小太小况且这地没土没水心想它很难活,也许会死掉谁……512414!抱歉了詹姆斯46年来唯一尴尬纪录被你达成了在今日湖人vs快船的比赛中,虽然湖人打得非常顽强,多次在落后10分数的情况下追上比分,一度还反超了比分,但最终功亏一篑,以6分之差不敌快船,遭遇了开赛2连败。吃到这场败仗……中国组合徐一璠杨钊煊入围WTA年终总决赛,本赛季两站巡回赛夺据国际女子网球协会WTA北京时间今天凌晨的消息,中国组合杨钊煊徐一璠入围了2022赛季WTA年终总决赛。她们成为第六支锁定年终盛事双打资格的团队。本赛季杨钊煊徐一璠组合在……前景堪忧,跳水世界杯遇大冷,全红婵参赛项目更是遭遇尴尬情况不管是那个竞技体育的世界杯,都是各支参赛队伍非常看重的世界大赛。然而,目前正在德国柏林举行的跳水世界杯,却遭遇到了很大的尴尬。从这次跳水世界杯的参赛队伍来看,不得不说,跳水这个……三星又造了一个巨大的相机传感器,将搭载在VivoX80上三星是全球第二大移动设备摄像头传感器制造商,基本上所有的智能手机品牌都使用过三星的传感器。在过去的几年中,这家韩国科技巨头已经推出了多种大型相机传感器,包括ISOCELLGN1……杜锋塞翁失马提前认输,郭艾伦读秒砸球,直播镜头马上切换CBA季后赛火爆来袭,辽粤大战在一片争议声中落下帷幕,此役大比分拿下广东,郭艾伦此役表现低迷,在比赛过程中更是不满裁判判罚,理论过程中还吃到技犯,赛后读秒阶段更是情绪失控,赢了……血栓并非悄无声息,医生手脚出现这4个变化,建议早做检查爱乐养生血栓是指血液在心血管系统血管内面剥落时或修补处的表面形成的小块,主要是由不溶性纤维蛋白沉积的血小板以及聚集性白细胞,红细胞构造。正常情况下来说,血液本身具有……七言诗劝老三首人生不过几十载,冷暖炎凉数万天人生苦乐难能定,万物兴衰任意行斩断人间三千愁,忘却红尘一段情世事短暂如春梦,人情淡薄似秋云人生哪能多如意,万事只求半称心……娘对我撒了一辈子的谎大家好,我是气盛方为年轻人,喜欢分享个人成长的干货,育儿带女的苦乐,人生经历的小嗑。您的每一次浏览点赞都是我前进的罗盘!一千位母亲有一千种爱,一千种爱却是同一种情怀。天下……肌张力低是唐氏?高是脑瘫?教你自测宝宝肌张力是否异常宝宝体检的时候,医生会拉拉宝宝的小手小腿,评估宝宝的肌张力发育情况。对于肌张力这个词,很多家长都比较陌生,但去网上查一查,就会看到一种说法肌张力低是唐氏儿,肌张力高是脑瘫……登泰山记五岳之首的泰山是我期盼已久的徒步攀登地,上周看周末天气不错,临时决定独自前往,因为前期已研究过行程,所以怀着无比崇敬的心情向往着并规划沿前人的足迹从遥参亭、岱庙、红门以登高必自……稳住基本盘,抓住现金流,开辟增长点,适应新周期当下经济形势波动,如何判断未来行业发展潜力?是否与内外环境强关联、是否是必选消费。我们基本上从两个维度去判断一个行业的未来发展。第一,行业发展与内外环境的变化……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网