2013-09-01 27 views
1

對於DynamoDB,我使用Amazon Java SDK客戶端,並且延遲大約爲100ms,平均在GetItem上爲256ms,以實現廣泛的密鑰傳播。 在cloudwatch中約爲8-10ms。如何增加客戶端上的DynamoDB性能?

我試圖用threadlocal爲每個線程啓動新的AmazonDynamoDBClient,希望它在一些緩存中。 我試圖從BasicAWSCredentials切換到STSSessionCredentialsProvider跳頻令牌安全檢查速度更快。 但我仍然在EC2實例和辦公室都有相同的非常高的延遲。

什麼會導致客戶端的這種延遲?

回答

2

Cloudwatch中的延遲時間爲8-10ms爲服務端延遲,即一旦您的請求到達亞馬遜的服務器,需要花費的時間爲。這不包括整體網絡延遲,因爲無法在服務器端進行測量。

您看到的額外延遲是您和亞馬遜之間的網絡延遲。在同一區域中使用EC2和DynamoDB 時,應該會看到〜1ms的延遲。您提到使用EC2,您確定您的EC2實例與您的DynamoDB表相同嗎?

+0

在此詳細說明,下面是一些關於延遲的粗略數字; DNS解析:〜200-250ms,跨大西洋轉移(歐美東海岸):〜80ms。美國的海岸轉移會比這少一點。 – oDDsKooL