我正在尝试使用Apache客户机和从RemoteConnection中获取数据。似乎next() of GraphTraversal从LinkedBlockingQueue of ResultQueue和另一个网络调用线程获取数据,将数据排队到LinkedBlockingQueue中。因此,即使我不使用遍历中的完整数据,它也会继续获取查询的完整结果。这的回答表明Gremlin控制台next()如何帮助获取所需的数据,而不是在内存中加载完整的数据。但这里不是这样的。我试图探索batchSize参数的RequestOption,但这也没有帮助。
是否有任何方法只以批方式(使用next(size))在内存中加载所需的数据,而不是使用Java一次性加载内存中的所有数据?使用Java连接到Neptune的基本示例是这里。
发布于 2021-12-19 00:33:55
Apache客户机的幕后工作方式是继续尽可能快地将来自服务器的数据接收到本地缓冲区,即使您说了类似于TinkerPop的话。这是因为如果可能的话,整个结果需要在服务器端超时触发器之前发送到客户端。如果您正在使用Amazon,那么刚刚引入了一个新的服务器端结果缓存功能,它将允许您进行真正的服务器端缓存和分页。详细信息请参见此链接
https://stackoverflow.com/questions/70388989
复制相似问题