3

What can be done in a transaction(亮點來自我):定義在ndb事務中訪問的實體組的最大數量?

在交易上的實體 相同的實體組,如果交易是一個組 交易,或者在最大的實體必須運行的所有數據存儲區操作二十五實體 組如果交易是跨組(XG)交易。

是否存在與我可以在我的python應用程序代碼中引用的那個數字相對應的實際定義?或者一個API調用返回它?我寧願使用一個,如果有的話,而不是創建我自己的定義,以防萬一谷歌決定改變它的道路...

更新:澄清,我說的是相當於的_MAX_EG_PER_TXN我剛剛發現在LiveTxn._GetTracker()從SDK的google/appengine/datastore/datastore_stub_util.py文件:

 if self._allow_multiple_eg: 
     Check(len(self._entity_groups) < _MAX_EG_PER_TXN, 
       'operating on too many entity groups in a single transaction.') 

作爲一個側面說明,這將會是偉大的調試,如果從self._entity_groups跟蹤組信息可以當這樣的異常升高以某種方式訪問​​。

+0

哇25個實體組。它曾經只有5次,那是他們一次添加XG事務;-) –

回答

2

實體組是頂級實體(沒有父/祖先)。引用它作爲祖先的每個子實體都屬於同一個實體組。

沒有編程的方式問API來獲取一個計數,但你應該能夠確定它在自己的代碼或者通過明確的設計:在一個事務中

  • 不超過25個實體如果採用頂級實體
  • 不超過25不同的家長,如果使用兒童實體

實體團的定義烤成底層Megastore存儲層,因此是比我們其他任何方式不太可能改變一世增加限制或刪除限制。

編輯: FR記錄:https://github.com/GoogleCloudPlatform/google-cloud-datastore/issues/121

+0

這回答瞭如何計算羣體的問題:)我已經在研究一個明確的設計來實現這一點,我只是尋找一個編程該值的定義,用於該設計。 –

+0

夠公平的。爲此不斷提出一個不合理的要求。我會考慮在哪裏提交申請:D –

+0

酷,thx!這也回答了我的問題:)請使用指向追蹤問題的指針更新答案,如果/當可用時,它可以被星標。謝謝。 –