2014-03-25 46 views
2

我知道一般GAE數據存儲的查詢最終是一致的。但是,我不明白爲什麼__key__上的查詢不應該保持一致,因爲我認爲這是Get數據存儲區使用的功能。「__key__」屬性上的查詢是否與GAE數據存儲非常一致?

任何人都可以確認由__key__查詢是否非常一致?

+0

我會認真的懷疑它。您仍在使用索引,在這種情況下,索引是鍵而不是其他屬性。索引仍然使用與所有其他索引相同的一致性規則進行更新。 –

+0

我可以想象,雖然'__key__'索引被數據存儲'put'操作專門處理,所以'put'只在它更新後才返回。因此,'put'和'get'操作之間可以保證強大的一致性。 – Dan

+0

我不這樣解釋。 get不需要索引,你執行的查詢需要一個索引。如果你相信另外運行一些測試。 –

回答

0

查詢將僅在祖先查詢中保持一致。否則即使索引包含關鍵條目也不一致。 這是因爲寫入分兩個階段應用,一個寫入數據,另一個寫入更新索引。獲得關鍵neves使用索引,以便它始終正確。 我假設你正在生成半固定密鑰,否則帶有密鑰的查詢不會有用。但是請注意,appengine現在推薦擴展您的密鑰,以便它們覆蓋一個大的空間,因此可以更好地分佈在bigtable中。

相關問題