我在現場的應用程序的查詢已經「奇」 ......的AppEngine NDB查詢返回不同的結果
運行使用Python 2.7
1.8.4 SDK 1.8.5 ...例如直播測量是NDB模型......有一個字符串屬性名爲狀態和關鍵屬性所謂資產....
(深在我的處理程序代碼。)
cursor=None
limit=10
asset_key = <a key to an actual asset>
qry = Measurement.query(
Measurement.status=='PENDING',
Measurement.asset=asset_key)
results, cursor, more = qry.fetch_page(page_size=limit, start_cursor=cursor)
現在奇怪的事情如果我運行這個有時我g等4個項目,有時只有1個(正確的答案是4)....
查詢的轉儲是完全一樣的...遊標設置爲無...限制總是相同.. ..相同的處理程序...相同的查詢和每個查詢之間沒有新的記錄。新鮮實例(例如第一次+沒有其他用戶)
每個查詢僅以秒隔開,但結果不同。
我在這裏錯過了什麼...有沒有其他人經歷過這個?這是一種腐敗指數嗎? (這是一個相對較大的「表」,含有482,911項)NDB是否緩存遊標變量?
非常奇怪。
感謝您的迴應。緩存不是一個因素,但我認爲你對一致性的評論看起來是正確的。 查看我們的日誌,當天有一些「緩慢」的數據存儲活動。我覺得有趣的是,不一致的結果是......好......不一致。我想它表明,對數據存儲的RPC請求是由許多服務器處理的,每個服務器都對數據是不同的概念。有趣的是,雖然我會認爲這是可以避免使用交易(它是在)...但現在我們有這種見解,希望我們可以找出一個替代解決方案(例如您的鏈接) – user2873131