每个单一实体组每秒写入限制为1次?

时间:2017-07-17 19:51:55

标签: java google-app-engine google-cloud-datastore google-cloud-platform

我已经足够搜索了这个&尚未找到答案。所以我在问。

根据Google cloud datastore doc

  

每秒大约有一个事务的写入吞吐量限制   在一个实体组内。

现在让我们说我有一个实体用户&另一个实体汽车。他们有一个共同的父母。所以User + Car + Their_Parent是一个实体组。正确?

让我们假设在数据存储区中用户&汽车每个都有一百万个实例/行。

如果我触发事务查询以更新数据存储区中的实例/行。

我的困惑是有多少实体组实例因应用Google DataStore的写入限制而被锁定?

一个。用户+汽车(全面有两千万个实例)

B中。只有1个User + Car实例? (1个用户行和1个车行)

  

在数据库用语中,User是实体种类/表。整个也是如此   表/种类被锁定1次写入操作或仅一个实例/行   被锁定1次写入操作?

如果A表示1次写入的意思,那么所有2000万行User + Car实体都将被锁定?那太疯狂了。如果我必须更新所有2000万行怎么办?如果写操作只更新1行,那么2000万行需要2000万秒才能避免任何争用吗?

2 个答案:

答案 0 :(得分:1)

  

实体组是通过祖先连接到a的一组实体   共同的根元素。将数据组织到实体组中即可   限制可以执行的交易:

请参阅“ Python ”文档here。感到惊讶的是它不在您的Java文档链接

答案 1 :(得分:0)

最后在data store article

找到了答案

enter image description here

在上面的示例中,每个组织可能需要更新组织中任何人的记录。考虑一个场景,其中“ateam”中有1,000个人,并且每个人在任何属性上每秒可能有一个更新。因此,实体组中每秒最多可能有1,000个更新,这是由于更新限制而无法实现的结果。这表明选择考虑性能要求的适当实体组设计很重要。这是在最终一致性和强一致性之间找到最佳平衡的挑战之一。