当使用tinkerpop的g.v()时,titandb是否会将完整的图形加载到内存中

z4bn682m  于 2021-06-10  发布在  Hbase
关注(0)|答案(1)|浏览(347)

我现在用的是泰坦。
我想在titan应用程序中使用tinkerpop支持的“g.v().values()”,实现图形遍历。
在我看来,tinkerpop在使用这个迭代器时会将全局图加载到内存中。
那么,在执行g.v()时,titan是否会将完整的图形加载到内存中?
如果答案是真的,当图形足够大时,我会担心内存大小。

quhf5bfb

quhf5bfb1#

在我看来,tinkerpop在使用这个迭代器时会将全局图加载到内存中。
我不知道你是从哪里得到这个结论的,但是tinkerpop接口的意图恰恰相反。实现tinkerpop接口的图形数据库应该利用 Iterator 对他们如何加载数据要聪明。我用斜体写“应该”,因为tinkerpop真的没有办法执行这个要求。没有什么可以阻止图形提供程序将其数据库中的所有数据拉入内存 g.V() 被称为。
也就是说,我还没有真正意识到有任何持久的(也就是说,没有在内存中,图形已经驻留在内存中)tinkerpop实现可以做到这一点,包括titan。如果是这样的话,土卫六就不能很好地扩展。当然,这并不意味着在一个oltp风格的遍历中,对十亿个边图中的所有顶点执行全局检索 g.V() 意味着你会得到好的结果。如果遍历完全返回(即超时和其他环境问题),则需要等待很长时间才能完成。对于全局图查询,您可以在这些情况下使用titanhadoop和olap风格的遍历。

相关问题