2011-11-02 124 views
1

我正在考慮使用亞馬遜Simpledb作爲一個隊列來從我的Web服務中取出一些負載。請求大於64k,我需要FIFO,所以我不能使用SQS。我想知道simpledb上的併發限制是什麼。我可以讓10,000個客戶全部在同一時間插入新行嗎?亞馬遜SimpleDB規模

任何幫助將是巨大的

回答

0

你可能有,因爲在寫入其「最終一致性」與SimpleDB的問題。這意味着當你寫數據的時候,它不保證在查詢之後立即返回。我聽說你幾秒鐘後就安全了,但你必須對系統進行編碼以考慮到這一點。

隨着條件放入的引入,這已被輕微緩解,確保在併發寫入時沒有丟失更新。最終的一致性模型會使編碼計數器和隊列等簡單事物變得非常複雜。

Here是使用AWS SDK在Java中實現的遞增計數器的示例。在nextValue方法注意:

while (!done) { 

客戶基本上是重試,直到他們的認沽乾淨地處理。這不可擴展!

+0

感謝您的信息。我想我會用s3和使用清單的工作人員在服務器上填充msmq來製作其他東西。從我讀過的內容來看,併發s3對象寫入的數量沒有限制。 – Quotient

+0

他們過去爲simpledb收取費用並得到(把成本增加10倍),所以這也是一個考慮因素,但這些已經從他們的定價中消失了,所以我想他們已經放棄了它們。每當我開始研究simpledb時,我最終都將s3用作鍵/值存儲,並且智能地選擇鍵或在本地索引。 – Tim

+0

另請注意,s3允許您使用前綴查詢存儲桶。這可以通過使用前綴來搜索日期:/yyyy/mm/dd/ ... – Tim