1 nebula没有采用双向邻接表的存储方式,vertex和edge都是对应的底层的一行数据,为什么导入点和导入边的速度差这么多呢?单位时间内导入点的速度远远大于边的速度。
2 现在有三台机器 ip1,ip2,ip3,ip1做meta和storage, ip2 ip3 做 graph和storage,每台机子的三个config到底应该怎么设置?如果按这个设置,一个space的数据会分到三台机子上,ip2,ip3组成HA查询集群,我的理解对吗?
1 nebula没有采用双向邻接表的存储方式,vertex和edge都是对应的底层的一行数据,为什么导入点和导入边的速度差这么多呢?单位时间内导入点的速度远远大于边的速度。
2 现在有三台机器 ip1,ip2,ip3,ip1做meta和storage, ip2 ip3 做 graph和storage,每台机子的三个config到底应该怎么设置?如果按这个设置,一个space的数据会分到三台机子上,ip2,ip3组成HA查询集群,我的理解对吗?
我是自己写的spark程序foreachpartition,每个partition一个syncconnection导入。我知道edge占用两行,用的graph500的数据,点边都没有属性,只有id。单个edge的时间远大于两个vertex。batchSize是100-200,是统一的
ip1
meta:meta ip1 local ip1
storage: meta ip1 local ip1
ip2(ip3)
graph: meta ip1 local ip2(ip3)
storage:meta ip1 local ip2(ip3)
这样子对吗?
是这样配置
边数据我读出来做了2d hash,不是相同 srcId在一个partition里面连着写入的
一个点的邻边,一般都是几十个吧?
这意味着,同一个src开始的 edge key,会有几十个。
和你是否hash没有关系。
我知道你意思,比如边1-2,1-3,1-4,写入时候短时间内 vid=1的partition会成为热点嘛,所以速度慢。
我意思是 我现在做了hash,不是只以srcId做rdd分区,1-2,1-3,1-4在写入时点上不是连续的,并不会让vid=1的partition变成写入热点。
OK。
你测试点和边的时延或者吞吐量差多少?