我正在使用DataStax Enterprise Graph,并希望使用 Gremlin 将所有节点从图形数据库流式传输到我的应用程序。
注意:我正在通过 WebSocket 与Gremlin 服务器通信,使用会话来获取持久变量。
为此,无需拉取内存中的所有节点,我首先在服务器上创建了一个迭代器:
// called once
iter = g.V();
然后我逐步将迭代器读入缓冲区并返回缓冲区的内容:
// called multiple times, until it returns an empty array
results = []
while (itemStream.hasNext() && results.size < 5000) {
results.push(itemStream.next())
}
return results
我曾经用TitanDB来做这个,它工作得很好(每秒读取几千个节点)。
使用DSE Graph,它的速度要慢得多(每秒读取 330 次),并且在仅读取 400'000 个节点后出现以下错误错误:
操作超时 - 仅收到 0 个响应。
在DSE Graph中是否有更好的方法来做到这一点?