2014-09-25 117 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