本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon Neptune 中的查詢佇列
開發和調校圖形應用程式時,了解資料庫將查詢排入佇列的方式會很有幫助。在 Amazon Neptune 中,查詢佇列發生方式如下:
無論執行個體大小為何,每個執行個體可以在佇列中等候的查詢數目上限為 8,192 個。超過該數目的任何查詢都會被拒絕,並且會失敗而產生
ThrottlingException
。一次可以執行的查詢數量上限取決於指派的工作者執行緒數量,通常設定為可用虛擬CPU核心 (vCPUs) 數量的兩倍。
查詢延遲包含查詢花費在佇列中的時間,以及網路往返時間和實際執行時間。
判定佇列在指定時刻有多少個查詢
MainRequestQueuePendingRequests
CloudWatch 指標會記錄以五分鐘精細程度在輸入佇列中等待的請求數 (請參閱 Neptune CloudWatch 指標)。
若是 Gremlin,您可以使用 Gremlin 查詢狀態 API 傳回的 acceptedQueryCount
值來取得佇列中目前的查詢計數。但請注意,SPARQL 查詢狀態 API 傳回的 acceptedQueryCount
值包含從伺服器啟動以來接受的所有查詢,包括完成的查詢。
查詢佇列如何影響逾時時間
如上所述,查詢延遲包含查詢花費在佇列中的時間,以及執行所花費的時間。
由於查詢的逾時期間通常是從查詢進入佇列起算,因此移動緩慢的佇列可能會使許多查詢一移出佇列就立即逾時。這個情況顯然不好,所以應避免將大量查詢排入佇列,除非它們可以快速執行。