指数倒扣¶
这个特性是在雷竞技下载官网Percona xtrabbackup 2.4.24在xbcloud二进制文件中。
指数回退增加了完成备份或恢复操作的机会。例如,如果网络连接不稳定或存在其他网络问题,则块上传或下载可能会失败。这个功能增加了指数级的后退或睡眠时间,然后重试上传或下载。
当数据块上传或下载操作失败时,xbcloud会检查失败的原因。此失败可能是CURL错误或HTTP错误,也可能是特定于客户端的错误。如果错误列在Retriable errors列表中,xbcloud将暂停计算时间,然后重新尝试操作,直到该时间达到——max-backoff价值。
重试该操作,直到——max-retries值。如果块操作在最后一次重试时失败,xbcloud将中止该进程。
默认值如下:
-max-backoff = 300000(5分钟)
-max-retries = 10
参数,可以调整重试次数——max-retries参数,并通过添加参数来调整重试之间的最大时间长度——max-backoffxbcloud命令的参数。
由于xbcloud并行处理多个异步请求,因此使用计算值(以毫秒为单位)max-backoff。该算法计算在下一次重试之前需要多少毫秒的睡眠时间。生成的数字是基于2的幂(2)的组合,已经尝试的重试次数,并加上1到1000之间的随机数。如果多个块具有相同的backoff值,这个数字可以避免网络拥塞。如果使用默认值,则第一次重试后的最后一次重试时间约为17分钟。当毫秒数达到时,这个数字不再计算——max-backoff设置。方法继续重试——max-backoff设置直到max-retries参数达到。
Retriable错误¶
我们尝试以下CURL操作:
CURLE_GOT_NOTHING
CURLE_OPERATION_TIMEOUT
CURLE_RECV_ERROR
CURLE_SEND_ERROR
CURLE_SEND_FAIL_REWIND
CURLE_PARTIAL_FILE
CURLE_SSL_CONNECT_ERROR
我们重试以下HTTP操作状态码:
503
500
504
408
每个云提供商可能会根据问题返回不同的CURL错误或HTTP错误。通过设置以下变量添加新的错误——curl-retriable-errors或——http-retriable-errors在命令行或my.cnf或者在[xbcloud]节下的自定义配置文件中。
方法时,错误处理得到增强——详细输出。该输出指定导致xbcloud失败的错误,以及用户必须添加什么参数才能重试此错误。
下面是一个详细输出的示例:
210701 14:34:23 /work/pxb/ins/2.4/bin/xbcloud: Operation failed.日志含义错误:Server returned nothing (no headers, no data) 210701 14:34:23 /work/pxb/ins/2.4/bin/xbcloud: Curl Error (52) Server returned nothing (no headers, no data) not configured as reable。您可以通过添加——curl-retriable-errors=52参数来允许
例子¶
下面的示例调整重试的最大次数和重试之间的最大时间。
Xbcloud [options]——max-retries=5——max-backoff=10000
以下文本是与该命令一起使用的指数回退的示例:
210702 10:07:05 /work/pxb/ins/2.4/bin/xbcloud: Operation failed.日志含义210702 10:07:05 /work/pxb/ins/2.4/bin/xbcloud: sleep for 2384 ms before retry backup3/xtrabackup_logfile。00000000000000000006[1]…210702 10:07:23 /work/pxb/ins/2.4/bin/xbcloud: Operation failed.日志含义210702 10:07:23 /work/pxb/ins/2.4/bin/xbcloud:在重试backup3/xtrabackup_logfile之前休眠4387毫秒。00000000000000000006[2]…210702 10:07:52 /work/pxb/ins/2.4/bin/xbcloud: Operation failed.日志含义错误:Failed sending data to peer 210702 10:07:52 /work/pxb/ins/2.4/bin/xbcloud: Sleeping for 8691 ms before retry backup3/xtrabackup_logfile。00000000000000000006[3]…210702 10:08:47 /work/pxb/ins/2.4/bin/xbcloud: Operation failed.日志含义错误:Failed sending data to peer 210702 10:08:47 /work/pxb/ins/2.4/bin/xbcloud: Sleeping for 10000ms before retry backup3/xtrabackup_logfile。00000000000000000006[4]…210702 10:10:12 /work/pxb/ins/2.4/bin/xbcloud: successfully upload chunk: backup3/xtrabackup_logfile.输出说明00000000000000000006, size: 8388660
下面的列表详细列出了示例输出:
(1。)块xtrabackup_logfile.00000000000000000006第一次上传失败,休眠2384毫秒。
(2。相同的块第二次失败,时间增加到4387毫秒。
(3。同一块第三次失败,时间增加到8691毫秒。
(4。相同的数据块第四次失败。的max-backoff=10000,将最大睡眠时间定义为10000。在达到该参数后,任何重试都将休眠相同的时间。
(5。相同的chunk上传成功。