2012-04-15 112 views
0
  1. 在高复制数据存储的Usage Notes中,它表示实体组每秒钟限制为1次写入。我对此有点困惑。在另一篇文章的Understanding Write Costs部分中,它表明只需存储一个新的实体可能需要14次写入。第一篇文章中提到的每秒1次写入是否与第二篇文章中的写入相同?如果是这样,则需要10秒来存储基本实体?我相信这不可能是正确的?谷歌表示,没有祖先存储的实体(作为根实体)具有最终的一致性。这是否意味着如果一个用户在没有祖先的情况下向数据存储区添加新实体,如果我在之后立即执行查询,则不能保证它可用。如果是这样,反正“最终”多久?它可以是几个小时,还是他们只是说几秒钟?Google App Engine实体组写入限制

回答

2
  1. 写入极限是1名实体写入到每秒的数据存储。写入成本是每个实体可能需要更新的索引数量,它们是不同的“写入” - 它们可能因实体而异,并且与“每秒写入1次”写入相比是单独的测量。

  2. 这是正确的。但请注意,有几个特定情况下结果非常一致。通过键获取单个实体的GET查询是非常一致的。祖先查询是数据存储强烈一致的另一种情况。 “最终”意味着不要指望它。通常情况下,这是几秒钟的时间,但在特殊情况下,比如BigTable平板电脑越来越大,需要拆分,或者平板电脑停机并需要更换,最终可能意味着更长时间。我在邮件列表上看到了一些关于查询返回旧结果几个小时的投诉,但这并不常见。

+0

“1个实体每秒写入数据存储区”..你的意思是每个实体组每秒写入1个实体吗?因此,我可以在一秒钟内将20个新实体添加到数据存储中,而不是添加到同一个实体组中,对吗? – Snowman 2012-04-15 04:10:34

+0

是的,没错。 – dragonx 2012-04-15 04:36:41

1
  1. 我不是这个完全确定(我会等待尼克·约翰逊权衡),但我相信,他们指的是1个事务提交每秒/写。数据存储上的事务锁在实体组级别上发挥作用,所以我猜测可以同时工作的(分布式)事务数量受到限制。

  2. 我认为您的理解是正确的 - 这源于HR数据存储将数据写入几个不同的数据存储,并在最后将其复制到所有其他数据存储的事实。您的第二个查询可能会发送到尚未获得更新的数据存储。不过,从我看到的,'最终'只是几秒钟,有时甚至更少。尽管如此,分布式体系结构的重点在于不依赖于时间间隔。