我有以下分页查询:
g.V().hasLabel('my-label').flatMap(out().order().by(id)).range(15000, 15299)我得到了以下错误:
[ERROR] GremlinServerError: 500: {"code":"MemoryLimitExceededException","requestId":"...","detailedMessage":"Query cannot be completed due to memory limitations."}那么,是否是order()导致数据库将所有节点加载到内存中,从而导致内存问题?我怎么才能避免这个问题呢?
发布于 2021-09-07 14:55:56
添加答案,以防其他人发现此讨论。在撰写本文时,db.t3.medium实例大小是Amazon海王星支持的最小实例大小。海王星体系结构是这样的:每个实例都有一个工作线程池,该工作线程池通常等于实例上vCPU数量的两倍。内存和其他资源必须在这些线程之间进行划分。内存的一大块也被缓存占用,该缓存用于尽可能多地将图形数据保存在实例的本地。更大的实例拥有更多的vCPU和内存,因此一个查询拥有更多的资源。在许多情况下,内存不足错误表明您只需要部署一个更大的实例。
您可以使用/profile应用程序接口查看查询产生了多少遍历器,这通常可以很好地指示它占用了多少内存。如果您想在T3实例上试用,可能需要使用limit来获取配置文件。
https://stackoverflow.com/questions/68839205
复制相似问题