我正在考慮將數十個併發作業寫入同一個數據存儲模型。無論併發投入的數量是多少,數據存儲都會縮放嗎?對App Engine數據存儲的併發寫入的可伸縮性
回答
實體類型不存在爭用 - 僅適用於實體組(具有相同父實體的實體)。既然你說你每次寫信給一個新實體,你都應該可以隨意擴展。但是,一個細節仍然存在:如果您插入的實體數量很高(每秒數百個),並且您使用的是默認的自動生成的ID,則可能會出現「熱片」,這會導致爭用。如果您期望插入率很高,您應該使用密鑰名稱,然後選擇一個不會自動生成ID的密鑰 - 示例可以是電子郵件地址或隨機生成的UUID。
數據存儲區每秒只能處理任何給定的實體的每秒寫入次數。嘗試寫入特定的實體太快會導致競爭,如Avoiding datastore contention中所述。本文建議分割一個實體,如果您希望它每秒持續更新一次或兩次以上。
數據存儲區針對讀取進行了優化,但是如果您的併發作業正在寫入單獨的實體(即使它們在同一模型中),那麼您的應用程序可能會擴展 - 這取決於您的請求處理程序執行多長時間。
就我而言,我實際上並沒有碰到同一個實體。每項任務都在創建一個新的實體。所以爭議將會在更高層次上進行。我不斷創建新的和刪除舊的實體。 – Greg 2010-07-14 23:10:59
不斷創建新的和刪除舊的實體不會導致實體級別的爭用,儘管您的寫入可能會因爭用索引更新而變慢。以下兩篇文章介紹瞭如何執行寫入的詳細信息:[數據存儲區的寫入時間](http://code.google.com/appengine/articles/life_of_write.html)和[如何建立索引](http: //code.google.com/appengine/articles/index_building.html) – 2010-07-14 23:14:38
這個答案是正確的,除了爭用是在實體_group_級別,而不是實體級別。 – 2010-07-19 13:26:55
- 1. 將HTTPServletRequest流寫入Google App Engine的數據存儲
- 2. 數據存儲一對多Google App Engine
- 3. 查詢Google App Engine數據存儲時的併發問題
- 4. 在數據存儲中插入數據 - App Engine - 一對多
- 5. Web API併發性和可伸縮性
- 6. 不存儲在Google App Engine數據存儲中的對象
- 7. Google App Engine - 「java.lang.IllegalArgumentException:數據存儲事務或寫入太大。」
- 8. 如何使用PHP寫入本地App Engine數據存儲區
- 9. 如何將我的Google App Engine數據存儲中的數據寫入com.google.appengine.api.datastore.Text
- 10. Laravel Web App的可伸縮性
- 11. App Engine數據存儲中的祖先
- 12. App Engine的 - 數據存儲 - 索引
- 13. Google App Engine中的數據存儲
- 14. App Engine數據存儲 - 數據模型
- 15. 阻止併發訪問App Engine數據存儲
- 16. 爲Google App Engine開發並使用數據存儲
- 17. Google App Engine - 處理存儲對象的併發問題
- 18. 實體不可被放入谷歌App Engine數據存儲
- 19. 如何在App Engine數據存儲中存儲鍵值對?
- 20. 進入App Engine的數據不可靠
- 21. 將數據發送到Google App Engine /數據存儲
- 22. 重構Google App Engine數據存儲
- 23. Google App Engine數據存儲困難
- 24. App Engine高複製數據存儲
- 25. Google App Engine數據存儲區編碼?
- 26. 創建App Engine數據存儲實體
- 27. App Engine數據存儲 - devserver限制
- 28. App Engine副本數據存儲
- 29. Google App Engine:存儲數據及查詢
- 30. Google App Engine數據存儲區 - 主鍵
我會試驗關鍵的名字......現在,我會做多達450個批處理調用。 – Greg 2010-07-19 20:24:00
批量放入不是問題 - 這是重要的順序ID放置操作的速率。 – 2010-07-20 07:21:44
只是所以我正確理解你 - 你的意思是批處理不會受到你在回答中描述的性能問題的影響嗎?這與我迄今爲止所做的性能分析是一致的。使用隨機UUID不會改進批量投放調用。 – Greg 2010-07-20 17:39:04