首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gremlin-server: vertexIdManager=ANY会产生id冲突吗?

Gremlin-server: vertexIdManager=ANY会产生id冲突吗?
EN

Stack Overflow用户
提问于 2022-01-15 22:37:26
回答 1查看 99关注 0票数 0

我需要在gremlin-server中配置tinkergraph-empty.properties文件,以便使用“任意”逻辑生成id。

代码语言:javascript
复制
gremlin.tinkergraph.vertexIdManager=ANY
gremlin.tinkergraph.edgeIdManager=ANY
gremlin.tinkergraph.vertexPropertyIdManager=ANY

我用一个空数据库测试了这个配置:当我创建一些顶点时,我注意到id是以字符串表示的数字,数字不是连续的,这是否意味着会发生id冲突?这背后的逻辑是什么?

我需要这种配置,因为我需要本地gremlin服务器与Amazon中的数据兼容,只有任何一个都与Neptune ids兼容。我需要能够加载海王星的数据库内容在本地主机gremlin-服务器,以做一些操作,并可能然后转移回海王星,没有问题。

我担心碰撞,因为这会破坏数据,当我的数据被销毁时也是我的项目。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-15 23:22:14

您可能看不到顺序is的原因是属性也有is,如果是TinkerGraph,则是从同一个池中获取的。您也可以在本地使用Gremlin控制台看到这一点。

代码语言:javascript
复制
gremlin> conf = new BaseConfiguration();[]
gremlin> conf.setProperty("gremlin.tinkergraph.vertexIdManager","ANY");[]
gremlin> conf.setProperty("gremlin.tinkergraph.edgeIdManager","ANY");[]
gremlin> conf.setProperty("gremlin.tinkergraph.vertexPropertyIdManager","ANY");[]
gremlin> g = TinkerGraph.open(conf).traversal()
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]

gremlin> g.addV('test')
==>v[0]
gremlin> g.addV('test')
==>v[1]
gremlin> g.addV('test').property('x',1)
==>v[2]
gremlin> g.addV('test')
==>v[4]
gremlin> g.V().has('x').properties('x').id()
==>3       

更新2022/01/16,以便在评论中解决其他问题。

使用GraphML加载的文件(JSON或g.io )可以包含用户提供的ID。除非ID已经在使用,否则这些都会工作。不允许重复ID,如果遇到任何错误,将引发错误。在文件加载期间,只有属性才会自动获得ID。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70725996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档