在 Amazon Neptune 中查询队列 - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Amazon Neptune 中查询队列

在开发和调整图形应用程序时,了解数据库对查询进行排队的方式有何影响可能会有帮助。在 Amazon Neptune 中,查询按以下方式排队:

  • 无论实例大小如何,每个实例可排队的最大查询数为 8192。超过该数字之后,系统将拒绝任意查询,查询失败并显示 ThrottlingException

  • 一次可以执行的最大查询数由分配的工作线程数决定,该数量通常设置为可用虚拟 CPU 核心 (vCPU) 数的两倍。

  • 查询延迟包括查询在队列中花费的时间、往返行程时间以及实际执行所用的时间。

确定在给定时刻队列中有多少查询

这些区域有:MainRequestQueuePendingRequestsCloudWatch 指标以五分钟的粒度记录在输入队列中排队的请求数(请参阅Neptune CloudWatch 指标)。

对于 Gremlin,您可以使用 Gremlin 查询状态 API 返回的 acceptedQueryCount 值获取队列中的当前查询计数。但请注意,SPARQL 查询状态 API 返回的 acceptedQueryCount 值包括自服务器启动以来接受的所有查询,已完成的查询也计算在内。

查询排队如何影响超时

如上所述,查询延迟包括查询在队列中花费的时间以及执行所用的时间。

由于查询超时时段的测量通常是从进入队列时开始,因此进展缓慢的队列会导致许多查询一出队就超时。这显然是不可取的,所以除非查询可以快速执行,否则请尽量避免大量的查询排队。