appengine数据存储区超时错误5和11之间有什么区别?

And*_*ell 8 concurrency google-app-engine go google-cloud-datastore

我正在尝试加速具有大型数据存储区PutMulti调用(500个实体)的Google App Engine请求处理程序,方法是将其拆分为多个实体并运行并发goroutine以发送较小的PutMulti调用(每个100个实体).

在此之前,当我在许多并发请求上测试处理程序时,我经常在截止日期之前Call error 11: Deadline exceeded (timeout)从我的PutMulti调用中获取数据存储区错误.在并行化之后,处理程序确实加速了,但我偶尔也会遇到这个错误以及另一种类型的错误API error 5 (datastore_v3: TIMEOUT): The datastore operation timed out, or the data was temporarily unavailable.

这个错误5是由于数据存储区中的争用造成的,错误5和11之间有什么区别?

Jef*_*len 1

您看到的第一个错误可能只是正常操作中的超时,第二个错误可能是由于写入争用。有关详细信息:处理数据存储区错误https://cloud.google.com/appengine/articles/handling_datastore_errors