非常简单,我想知道(在谷歌应用引擎中):
有一个解释here关于同时发出两个请求时会发生什么,但我没有看到这个问题具体回答。简而言之,我想知道当我从POST或PUT获得响应时,是否保证将来对数据存储区的所有请求都将具有反映POST或PUT所做更改的索引。在上面提供的链接的上下文中,是否保证当请求返回时数据库的视图将在里程碑B中?
谢谢。
答案 0 :(得分:4)
甚至比这更好 - 在put()完成时,所有读者都可以保证索引更新和可见。写入主数据存储区并且索引是并行完成的,并且put()请求在它们全部完成之前不会返回。
答案 1 :(得分:1)
保证在事务提交后更新索引(即,当提交返回时,这意味着达到里程碑B);如果您的请求成功完成,其所有事务都已提交或回滚(在这种情况下,您捕获异常并以某种方式处理它或将导致500)。
但是我不确定如果你的appserver在里程碑A和B之间崩溃会发生什么 - 显然你不会在客户端得到成功的响应,但我不知道有任何断言这真的会从正常。