#图数据库# #图数据库小知识# 今天来分享一个技术思考——「图数据库考虑做存储计算分离」背后的原因是什么,本条内容摘录于 Nebula Graph 嘉年华 2019 活动现场,实录 B 站视频传送门:
t.cn
🙇♀️ 下面请看文字回复:
基于之前的项目经历。存储计算不分离的分布式架构,水平扩展会比较不方便。举个例子,在好友关系这种场景——基于好友关系查询再做一些排序和计算,在某个节点查询执行过程中需要去其他节点获取数据,或者将某个子计算交给其他节点,如果执行过程中需要的数据存储在本地,相较存储计算分离效率可能会高;但当涉及到和其他节点通信问题时,增加硬盘,增加机器,但对整体计算能力提升不大,而且扩容的时候很麻烦。如果存储计算分离,计算和存储一对一,不存在节点越多网络通讯开销越大的问题。
此外,我们在存储层提供基于图的查询接口,但不具备运算能力,方便对接外部的批量计算,比如 Spark,可以将我们的图存储层当作为图索引存储,直接批量扫描、遍历图自行计算,这样操作更灵活。存储层支持做一些简单的过滤计算,比如找寻 18 岁好友等过滤操作。
最后,Nebula Graph 的 GitHub 地址等你来 Pick
0x7.me
🙇♀️ 下面请看文字回复:
基于之前的项目经历。存储计算不分离的分布式架构,水平扩展会比较不方便。举个例子,在好友关系这种场景——基于好友关系查询再做一些排序和计算,在某个节点查询执行过程中需要去其他节点获取数据,或者将某个子计算交给其他节点,如果执行过程中需要的数据存储在本地,相较存储计算分离效率可能会高;但当涉及到和其他节点通信问题时,增加硬盘,增加机器,但对整体计算能力提升不大,而且扩容的时候很麻烦。如果存储计算分离,计算和存储一对一,不存在节点越多网络通讯开销越大的问题。
此外,我们在存储层提供基于图的查询接口,但不具备运算能力,方便对接外部的批量计算,比如 Spark,可以将我们的图存储层当作为图索引存储,直接批量扫描、遍历图自行计算,这样操作更灵活。存储层支持做一些简单的过滤计算,比如找寻 18 岁好友等过滤操作。
最后,Nebula Graph 的 GitHub 地址等你来 Pick
展开
评论
1
![[我想静静]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_74.d954f2d.png)