首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用range()的Gremlin/Neptune分页给出了MemoryLimitExceededException

使用range()的Gremlin/Neptune分页给出了MemoryLimitExceededException
EN

Stack Overflow用户
提问于 2021-08-18 20:54:34
回答 1查看 101关注 0票数 0

我有以下分页查询:

代码语言:javascript
复制
g.V().hasLabel('my-label').flatMap(out().order().by(id)).range(15000, 15299)

我得到了以下错误:

代码语言:javascript
复制
[ERROR] GremlinServerError: 500: {"code":"MemoryLimitExceededException","requestId":"...","detailedMessage":"Query cannot be completed due to memory limitations."}

那么,是否是order()导致数据库将所有节点加载到内存中,从而导致内存问题?我怎么才能避免这个问题呢?

EN

回答 1

Stack Overflow用户

发布于 2021-09-07 14:55:56

添加答案,以防其他人发现此讨论。在撰写本文时,db.t3.medium实例大小是Amazon海王星支持的最小实例大小。海王星体系结构是这样的:每个实例都有一个工作线程池,该工作线程池通常等于实例上vCPU数量的两倍。内存和其他资源必须在这些线程之间进行划分。内存的一大块也被缓存占用,该缓存用于尽可能多地将图形数据保存在实例的本地。更大的实例拥有更多的vCPU和内存,因此一个查询拥有更多的资源。在许多情况下,内存不足错误表明您只需要部署一个更大的实例。

您可以使用/profile应用程序接口查看查询产生了多少遍历器,这通常可以很好地指示它占用了多少内存。如果您想在T3实例上试用,可能需要使用limit来获取配置文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68839205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档