Google app engine 数据存储:事务中对实体组的多次写入是否超过写入限制?

Google app engine 数据存储:事务中对实体组的多次写入是否超过写入限制?,google-app-engine,google-cloud-datastore,Google App Engine,Google Cloud Datastore,我熟悉数据存储对实体组的每秒单次写入限制(好的,可能是5)。这与交易有什么关系 这些文档似乎表明我可以在一个事务中进行多次修改,例如添加几个子实体: 单个事务可以修改单个组中的多个实体, 或通过将新实体的父实体设置为 集团中的现有实体 是的,您可以在同一事务中对每个实体组执行多个写入操作,但要小心: 请注意不要在同一事务中写入导致冲突,否则事务最终将失败(即使重试后) 尝试将每个事务中的写入量保持在较低水平,或以某种方式确保事务之间有足够的间隔,以使总写入操作率(或其短期平均值)保持(远)低于

我熟悉数据存储对实体组的每秒单次写入限制(好的,可能是5)。这与交易有什么关系

这些文档似乎表明我可以在一个事务中进行多次修改,例如添加几个子实体:

单个事务可以修改单个组中的多个实体, 或通过将新实体的父实体设置为 集团中的现有实体


是的,您可以在同一事务中对每个实体组执行多个写入操作,但要小心:

  • 请注意不要在同一事务中写入导致冲突,否则事务最终将失败(即使重试后)
  • 尝试将每个事务中的写入量保持在较低水平,或以某种方式确保事务之间有足够的间隔,以使总写入操作率(或其短期平均值)保持(远)低于1写入/秒限制,从而为瞬时峰值和偶尔重试也会影响该限制的故障留出空间。否则会出现并发/争用异常。看
当然,您可以在跨组事务中写入多达25个实体组(此时)(每个实体组都有自己的~1次写入/秒限制,总计可达~25次写入/秒)

在最终的一致性和写入量之间取得正确的平衡并非易事。这可能会引起兴趣:

更新DanMcGrath的评论:


从技术上讲,每个实体组每秒写入一个事务, 其中,单个实体的交易最多可以有500个实体 小组。这意味着您最多每秒可以写入500个实体 合并到单个实体组中。还要注意的是,您可以在每个月一次达到更高的峰值 第二,尽管如果你坚持下去,你会增加你被击中的风险 争论以及系统的最终一致性丹 麦格拉斯1小时前


来自谷歌文档的确认:从技术上讲,每个实体组每秒写一笔交易,一笔交易最多可以有500个实体。这意味着您最多可以每秒将500个实体写入单个实体组。还要注意的是,你可以每秒一次达到更高的峰值,尽管如果你坚持下去,会增加发生争用的风险以及系统的最终一致性。@DanMcGrath:Hm,这应该在文档中详细说明…@DanCornilescu,我们正积极努力改进它。例如,在我们的新限制文档中,您将看到它被更清晰地调用:@DanMcGrath:太好了,Thx!谢谢,我与数据存储团队进行了交谈,也证实了这一点。