MySQL 8.0x 到 9.0均可能崩溃--云厂商开发指责 MYSQL不测试就推新版本?

文摘   2024-07-23 06:02   中国香港  

开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,可以解决你的问题。加群请联系 liuaustin3 ,(共2320人左右 1 + 2 + 3 + 4 + 5 + 6 + 7) (1 2 3 4 5 均没有空位了,请不要在问了谢谢)

最近看一些友人都在发MySQL9的新功能,很想查查有什么新鲜的东西,但不查不要紧,一查吓一跳。MySQL 8.038 ,8.4.1, 9.0 均存在大BUG,并挖出大瓜,某国内云厂商内核开发在MYSQL BUG List 质问甲骨文MYSQL,为什么这么简单的问题连测试都不测试就上线推新版本。

根据Percona的BLOG中的文章显示,当前他们发现MYSQL 8.037后面的版本均存在BUG,当表的数量超过 10000 张后,对应版本的MYSQL会系统崩溃,并进行重启。当前发现的的 8.038, 8.4.1, 9.0 均存在此问题。

这再次提醒使用开源数据库的公司和人员,不要在开源数据库上新后,就马上进行追随,升级现有的数据库系统的版本,具体稳妥的方式为,在开源数据库上新1年后,在进行数据库版本的计划的升级。终究数据库升级不是儿戏,也不是越新越好,稳定性才是最重要。

其他开源数据库也发生过类似的一些事情,如POSTGRESQL 14版本在初期在线添加索引,导致丢失数据的问题等。

更多具体的信息参见 https://perconadev.atlassian.net/browse/PS-9306


另某云厂商 RDS 核心团队的成员 Huaxiong Song,报告了此次问题给MYSQL官方,具体的翻译内容如下 

我从 Percona 的博客中了解到了 bug#115517,这是一个严重的问题,尚未完全经过测试。实际上,这个 bug 的原因非常简单:当数字超过 8000 时,InnoDB 会调用多个线程进行检查,而主线程以外的线程的 THD 未初始化,导致在 commit#28eb1ff 引入的修复中对 DD 的访问异常。

但我想谈谈其他问题。

这是一个并发函数,但测试用例并未涵盖它。这种设计的合理性值得怀疑。我对 MySQL InnoDB 大型表的启动进行了大量测试和研究。获取 DD 信息并不是一项非常快速的行为。以我的测试数据为例:100 万个表(sysbench 构建),正常关闭和重新启动,启动时间如下:Tablespace_dirs::scan() - 44.4 秒 fetch_global_components(&tablespaces) - 25.5 秒 validate(tablespaces) - 15.8 秒 总计 - 90.7 秒 我们可以发现,fetch_global_components(&tablespaces) 占据了启动时间的 28%,而这个函数是用来读取 DD::tablespace 表并构建 DD::tablespace 对象的。

在引入 commit#28eb1ff 后,忽略 bug#115517,我们可以假设除了获取所有表空间外,还需要获取所有 DD::table。与获取 DD::tablespace 不同,获取 DD::table 将更耗资源,因为每次获取都需要构建和销毁 Auto_releaser 对象。(尽管引入了多线程,我认为问题仍然存在)。对于函数 dict_name::parse_tablespace_path,我认为这个函数值得单独讨论:3.1 我认为将 std::string path 传递给函数并不理想。我认为 const std::string &path 更为合适。3.2 函数中使用了 SUB_PART_SEPARATOR 和 PART_SEPARATOR,但由于历史原因,分区和子分区的分隔符也可能是 #P# 和 #SP#。显然,这个函数无法处理这个问题。让我们回到 Validate_files::check 函数。在 parse_tablespace_path 之后,实际上调用了 fil_update_partition_name 来处理我上面提到的分区分隔符问题。因此,dict_name::parse_tablespace_path 的设计和使用并不完全合理。



置顶文章

MYSQL 版本迁移带来 严重生产事故“的”分析

MySQL 8.0 版本更新 要点 列表 (8.0-8.0.23)

MySQL 8.0 小版本更新要点,个小版本更稳定(8.0.24-8.0.37)

MySQL 让你还用5.7 出事了吧,用着用着5.7崩了

PostgreSQL 哪些版本尽量避免使用,版本更新重点明晰(PG12)

PostgreSQL 15 16 小版本更新信息小结 版本更新是不是挤牙膏

PolarDB serverless 真敢搞,你出圈了你知道吗!!!!

MySQL 让你还用5.7 出事了吧,用着用着5.7崩了

云原生数据库是一场闹剧,还是数据库市场的程咬金

PolarDB 从节点Down机后,引起的主从节点强一致的争论


往期热门文章:

临时工说:改了三次还是不能播的,数据库市场思考

PostgreSQL 稳定性平台 PG中文社区大会--杭州来去匆匆

MongoDB 入门教学贴 从术语到操作 (用户权限 内部培训贴)

临时工说:  网友问35岁就淘汰,我刚入行DBA 怎么办?
临时工访谈:问金融软件开发总监  哪些业务不用传统数据库
PostgreSQL  15 16 小版本更新信息小结 版本更新是不是挤牙膏
临时工访谈:临时工 写了6年多公众号赚了多少钱?
MongoDB 的一张“大字报”  服务客户,欢迎DISS
MongoDB  聚合怎么写,更复杂的聚合案例
MySQL 8.0 小版本更新要点,哪个小版本更稳定(8.0.24-8.0.37)
SQL SERVER 2022 针对缓存扫描和Query Store 的进步,可以考虑进行版本升级

有思想的人,在这个年代会很痛苦?躺平还是醒着都无所谓了

MYSQL 版本迁移带来 严重生产事故“的”分析

PolarDB  Serverless POC测试中有没有坑与发现的疑问
临时工访谈:PolarDB  Serverless  发现“大”问题了  之 灭妖记 续集
临时工访谈:庙小妖风大-PolarDB 组团镇妖 之 他们是第一
PolarDB for PostgreSQL  有意思吗?有意思呀
PolarDB  Serverless POC测试中有没有坑与发现的疑问

MySQL 的SQL引擎很差吗?由一个同学提出问题引出的实验

临时工访谈:从国产数据库 到 普罗大众的产品 !与在美国创业软件公司老板对话

PostgreSQL 如何通过工具来分析PG 内存泄露

MySQL 的SQL引擎很差吗?由一个同学提出问题引出的实验
临时工访谈:我很普通,但我也有生存的权利,大龄程序员 求职贴
临时工说: 快速识别 “海洋贝壳类” 数据库方法速递
临时工说:国产 数据库 销售人员  图鉴
临时工说:DBA 是不是阻碍国产数据库发展的毒瘤 ,是不是?从国产DB老专家的一条留言开始 (其实更好看的是文章下方的留言)

感谢 老虎刘 刘老师 对 5月20日 SQL 问题纠正贴 ---PostgreSQL 同一种SQL为什么这样写会提升45%性能

PostgreSQL 同一种SQL为什么这样写会提升45%性能 --程序员和DBA思维方式不同决定

MongoDB 不是软柿子,想替换就替换

PostgreSQL  熊灿灿一句话够学半个月 之 KILL -9

MongoDB  挑战传统数据库聚合查询,干不死他们的

临时工说:国内数据库企业存活   “三板斧”

临时工说:搞数据库 光凭的是技术,那DBA的死多少次?

PostgreSQL  分组查询可以不进行全表扫描吗?速度提高上千倍?
临时工说:分析当前经济形势下 DBA 被裁员的根因
PostgreSQL PG_DUMP 工作失败了怎么回事及如何处理
MySQL 八怪(高老师)现场解决问题实录
PostgreSQL 为什么也不建议 RR隔离级别,MySQL别笑
临时工访谈:OceanBase上海开大会,我们四个开小会 OB 国产数据库破局者
临时工说:OceanBase 到访,果然数据库的世界很卷,没边
临时工访谈:恶意裁员后,一个国产数据库企业程序员的心声
临时工说:上云后给 我一个 不裁 DBA的理由
PolarDB for PostgreSQL  有意思吗?有意思呀
PostgreSQL   玩PG我们是认真的,vacuum 稳定性平台我们有了
临时工说:裁员裁到 DBA 咋办  临时工教你 套路1 2 3
PolarDB  搞那么多复杂磁盘计费的东西,抽筋了吗?
临时工说:OceanBase 到访,果然数据库的世界很卷,没边
MONGODB  ---- Austindatabases  历年文章合集
MYSQL  --Austindatabases 历年文章合集
POSTGRESQL --Austindatabaes 历年文章整理
POLARDB  -- Ausitndatabases 历年的文章集合
PostgreSQL  查询语句开发写不好是必然,不是PG的锅
SQL SERVER 如何实现UNDO REDO  和PostgreSQL 有近亲关系吗
MongoDB 2023纽约 MongoDB 大会 -- 我们怎么做的新一代引擎 SBE Mongodb 7.0双擎力量(译)
MongoDB 2023年度纽约 MongoDB 年度大会话题 -- MongoDB 数据模式与建模
MongoDB  双机热备那篇文章是  “毒”
MongoDB   会丢数据吗?在次补刀MongoDB  双机热备
临时工说:从人性的角度来分析为什么公司内MySQL 成为少数派,PolarDB 占领高处
POLARDB  到底打倒了谁  PPT 分享 (文字版)
PostgreSQL  字符集乌龙导致数据查询排序的问题,与 MySQL 稳定 "PG不稳定"
PostgreSQL  Patroni 3.0 新功能规划 2023年 纽约PG 大会 (音译)

Austindatabases 公众号,主要围绕数据库技术(PostgreSQL, MySQL, Mongodb, Redis, SqlServer,PolarDB, Oceanbase 等)和职业发展,国外数据库大会音译,国外大型IT信息类网站文章翻译,等,希望能和您共同发展。

截止今天已发布1184篇文章

AustinDatabases
关于数据库相关的知识分享
 最新文章