考慮這兩種情況在App Engine數據存儲設計:當XG(跨組)事務可以完成同樣的工作時,爲什麼要選擇實體組事務?
- A是B的祖先,我們使用一個事務來更新這個實體組。
- A和B都沒有祖先。我們使用XG事務來更新這兩個實體。
我可以在2的情況下看到這些優點:
- 就像1的情況下,實現了原子性。
- 如果我給A和B的字符串或整數ID,鑑於它們是不同的種類,我可以查找其中一個,當我有另一個。這對於在情況1中由父母或子女查找等同。
- 因爲實體不在組中,所以它們不受寫入吞吐量限制的影響。
以上幾點是否正確?案例1何時和爲什麼要使用案例2?
在您的示例中,用戶最終將擁有數以萬計的帖子,從而使實體組非常大。這不是問題嗎?另外,在我的例子中,A和B共享相同的id但是不同的類型,是不是很滿意? – ali
沒關係,如果用戶有很多帖子(顯然你應該設置一個限制並使用分頁來實際顯示它們)。 對不起,我的意思並不是暗示交易沒有很強的一致性 - 無論是否在交易中使用,Gets和Puts總是非常一致。 –