我正在使用 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个&#39; 000个节点后出现以下错误错误:
操作超时 - 仅收到0个回复。
在 DSE Graph 中有更好的方法吗?