Titan BatchLoading berkeleydb不是持久性的

时间:2015-03-07 05:41:46

标签: persistent berkeley-db titan bulk-load

我真的无法弄清楚我的问题在哪里。 我正在使用Titan 0.5.0(这与新版Titan版本的问题相同......)

我想从csv文件加载一堆顶点和边,其中包含100k个条目(每行导致至少3个节点和一些边)到我的图中。 它需要大约5分钟才能完成导入。

所以我尝试了同样的配置storage.batch-loading = true. 它只需2分钟即可完成导入,速度更快。

但问题是,如果我打开storage.batch-loading = true选项,则节点和边缘不会保存到数据库中。因此,如果我关闭Gremlin并重新打开我的图表,它就是空的。

它的工作方式就像将storage.batch-loading设置为false的魅力一样。它需要更长的时间,但条目保存持久。

是的,我在导入后提交Batchgraph以及图表本身。 我错过了什么吗?

在这个例子中,我想导入大约30k个节点进行测试,但它们也没有保存持久性。 配置:

storage.backend=berkeleyje
storage.directory=graph

storage.batch-loading = true

query.fast-property =  true

Gremlin脚本:

g = TitanFactory.open("../graphs/batchImportTest2/batchImportTest2.properties")

//1 Prepare Graph for import

m = g.getManagementSystem();
username = m.makePropertyKey('username').dataType(String.class).make()
m.buildIndex('byUsername',Vertex.class).addKey(username).unique().buildCompositeIndex()
email = m.makePropertyKey('email').dataType(String.class).make()
m.buildIndex('byEmail',Vertex.class).addKey(email).unique().buildCompositeIndex()
m.commit()
g.commit()

//2 Import Nodes and Edges

bg = new BatchGraph(g, VertexIDType.STRING, 50000)
new File("userInfo_js.txt").eachLine({ final String line ->def (username,email) = line.split('\t')*.trim();def userVertex = bg.getVertex(username) ?: bg.addVertex(username); userVertex.setProperty("username", username);userVertex.setProperty("email", email)})
bg.commit()
g.commit() 

1 个答案:

答案 0 :(得分:0)

我试图重现它,但它都按预期工作。有关我的shell会话的完整记录,请参阅我的要点,也许您可​​以发现差异:

https://gist.github.com/dkuppitz/5319a2fa7f9a8069fa15