app engine数据存储区事务异常

时间:2012-12-06 09:39:09

标签: google-app-engine google-cloud-datastore app-engine-ndb

在应用引擎transactions documentation中,我找到了以下注释:

  

注意:如果您的应用在提交交易时收到异常,   它并不总是意味着交易失败。你可以收到   案例中的超时,TransactionFailedError或InternalError异常   事务已经提交并最终将被应用   成功。尽可能进行数据存储区事务处理   幂等因此,如果您重复一个事务,最终结果将是   同样的。

这是非常一般的信息,我无法找到更多细节。关于这个问题我有以下问题:

  1. 它会影响NDB的转换吗? NDB documentation没有 提到它,但我想这种行为是继承的
  2. 导致此类情况的原因是什么?
  3. 多久发生一次?
  4. 我可以阻止它,还是降低概率?
  5. 在这种情况下,交易任务是否排队?
  6. 这种情况是一个错误,将来会修复,还是一个我应该习惯的功能?

1 个答案:

答案 0 :(得分:2)

是的,它也会影响ndb。

可能的原因包括数据存储区服务器成功提交但无法将结果传达给应用程序的网络分区。

很少见,但无法预防,永远无法修复。它是所有分布式系统所固有的。

数据存储区服务器通过事务提交任务队列添加。