2014-09-25 106 views
0

當您執行祖先查詢時,每個祖先每秒只能寫一次。這是否適用於不同的實體種類或同一類型?Google Datastore祖先查詢每個祖先每秒寫一個

例如, https://cloud.google.com/appengine/docs/python/ndb/queries#ancestor

class Customer(ndb.Model): 
    name = ndb.StringProperty() 

class Purchase(ndb.Model): 
    price = ndb.IntegerProperty() 

class Order(ndb.Model): 
    shipping = ndb.StringProperty() 

purchase1 = Purchase(parent=customer_entity.key) 
order1 = Order(parent=customer_entity.key) 

您可以寫信給雙方購和訂購在同一時間?

回答

0

它適用於整個實體組,不管實體類型如何(實際上,Datastore並不太在意種類 - 只有鍵和實體)。

您可以在order和你purchase分開運作,但不與transactions的強一致性。如果你想要一致性強,那麼你的customer_entity將定義該一致性的範圍和寫入速率限制的範圍。

1

是的,您可以同時寫入購買和訂單。在數據存儲中編寫實體時的侷限性適用於您使用transactions的情況。

例如,在您的代碼段中,您可以使用ndb.put_multi()來編寫兩個實體。

+0

Thanos對於使用單個放置操作是正確的。但是,寫入限制確實適用於外部事務。例如,如果您有許多用戶請求在同一個實體組中創建數據,則這會達到實體組的寫入限制。更合適的限制規則是「每寫一個實體組每秒寫入rpc」,這就是爲什麼使用'put_multi'允許您每秒向實體組寫入多於一次的原因。 – 2014-09-25 15:54:56