Issue
https://asktug.com/t/topic/662840
问题现象:tiflash 跨 5.3 进行滚动版本升级过程中,查询结果可能不对。
Root Cause
5.3 版本中有个优化exchange的功能修改了 exchange的接口(https://github.com/pingcap/tiflash/pull/3184)。tiflash 5.3 以前版本升级到 5.3 及以后版本的过程中,同时有老版本和新版本存在。因为 exchange 算子接口的优化导致 5.3 以前版本的 tiflash 的 exchange receiver 不能识别 5.3 及以后版本 的 tiflash 的 exchange sender发送的数据。
也就是这个优化 feature 最终破坏了tiflash 滚动升级方式。
Diagnostic Steps
确定是 5.3 之前的版本升级到 5.3之后的版本,包括6.0版本。
Resolution
因为是老接口无法识别新接口,所以无法从代码层面修复。只能在跨 5.3 版本升级 tiflash 的时候,不能用滚动升级的方式,只能用关闭所有tiflash 实例再启用新版本的升级方式。这会导致 tiflash 升级过程中查询失败,但是一般滚动升级过程中也不保证所有运行的查询成功,评估下来,这个重启升级方案可以接受。
Workaround
在跨 5.3 版本升级 tiflash 的时候,先关闭所有老版本 tiflash 实例,然后启用新版本 tiflash。
(ps: 争取把这个重启升级方式做到 tiup 中,避免手动操作。)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




