gpt4 book ai didi

grpc - Google Cloud Bigtable : repeated grpc error code 13, 然后突然成功

转载 作者:行者123 更新时间:2023-12-01 06:35:19 25 4
gpt4 key购买 nike

简而言之,我们有时会看到少量 Cloud Bigtable 查询重复失败(连续 10 次甚至 100 次)并出现错误 rpc error: code = 13 desc = "server closed the不发送预告片的流”,直到(通常)查询最终起作用。

详细来说,我们的设置如下:

我们在 Google Compute Engine 上运行一组(< 10)Go 服务。每项服务leases tasks来自一对 PULL 任务队列。每个任务都包含一个大表行的 ID。任务处理程序执行以下查询:

row, err := tbl.ReadRow(ctx, <my-row-id>, 
bigtable.RowFilter(bigtable.ChainFilters(
bigtable.FamilyFilter(<my-column-family>),
bigtable.LatestNFilter(1))))

如果查询失败,则任务处理程序简单地返回。由于我们以 10 到 15 分钟之间的租用时间租用任务,稍后租用将在该任务上到期,它将再次租用,我们将重试。这些任务的最大重试次数为 1000 次,因此可以在很长一段时间内重试多次。在少数情况下,特定任务会因上述 grpc 错误而失败。该任务通常每次都会因同样的错误而失败,它会连续运行数小时或数天,然后(似乎出乎意料地)最终成功(或任务用完重试次数并终止)。

由于这通常需要很长时间,因此似乎与服务器负载无关。例如,现在是周日早上,这些服务器的负载很轻,但我在跟踪日志时看到了很多这样的错误。来自 this answer ,我原本以为这可能是由于尝试查询大量数据,可能接近云bigtable将支持的最大限制。但是我现在看到情况并非如此;我可以找到许多示例,其中多次失败的任务最终成功并报告仅检索到少量数据(例如 <1 MB)。

我还应该看什么?

编辑:通过进一步的测试,我现在知道这是完全独立于机器(客户端)的。如果我在其中一台任务租赁机器上跟踪日志,等待“服务器关闭流而不发送预告片”错误,然后尝试一次性 ReadRow 查询来自另一台相同的 rowId,不相关的,完全未使用的机器,我反复遇到同样的错误。

最佳答案

此错误通常是由 more than 256MB of data 引起的在您的回复中。

但是,目前我们的服务器端错误处理代码中存在一个错误,允许在 HTTP/2 中使用一些无效字符。规范不允许的预告片。这意味着一些包含无效字符的错误消息将被视为此类错误。这应该会在明年初得到解决。

关于grpc - Google Cloud Bigtable : repeated grpc error code 13, 然后突然成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34252662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com