br 工具疑问2

上接这个帖子想问一下 br 备份工具的细节问题,想和官方确认下:

  1. 当与 s3 交互时,br 备份工具的行为是否是,40x的返回(工具不重试),50x的返回(重试)?
  2. br 工具在接收到 50x 的错误码时,重试次数可否自己设置?

当 BR 工具与 S3 交互时,如果收到 40x 的错误码,BR 工具不会重试,而是直接返回错误。如果收到 50x 的错误码,BR 工具会进行重试,重试次数默认为 10 次,可以通过 --s3.retry-times 参数进行设置。例如,以下命令将重试次数设置为 5 次:

./br backup full --pd <pd-address> --storage "s3://<bucket>/<prefix>" --s3.retry-times 5

最新的 LTS 版br 工具 v5.4.0 和 v6.5.2 br 均未发现 --s3.retry-times 参数,请问这个参数是再哪儿设置的?

回复来自内部的知识小助手,看上去这个回复是错误的

    // number of retries to make of operations.
    maxRetries = 7
    // max number of retries when meets error
    maxErrorRetries = 3

  func defaultS3Retryer() request.Retryer {
    return retryerWithLog{
            DefaultRetryer: client.DefaultRetryer{
                    NumMaxRetries:    maxRetries,
                    MinRetryDelay:    1 * time.Second,
                    MinThrottleDelay: 2 * time.Second,
            },
    }

}

https://github.com/pingcap/tidb/blob/3b508b3a20d05bdfd56c38f4ed9b0dc07e7dc19b/br/pkg/storage/s3.go#L796

看代码关于重试,有两个写死的变量: maxRetries 是s3的client的NumMaxRetries参数
maxErrorRetries 是读取遇到错误的重试次数。好像没有对外提供参配置。

1 个赞

可否与开发同学重新确认下?(不要gpt答案)

我内网帮你问问~

目前没有设置重试次数这一参数

我都没有用过s3,都是本地备份,最好用共享磁盘

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。