基于MySQL 8做分布式数据库,有哪些坑

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 基于MySQL 8 做分布式数据库, 有哪些坑?
2. 0 1
3. 基于MySQL的分布式数据库的限定条件 兼容MySQL语法和行为 2 1 采用shared—nothing架构 3 6 可扩展 基于MySQL做计算和存储 5 4 高可靠 事务满足ACID特性
4. 0 2
5. 基于MySQL做分布式数据库的优点 生态环境好 生态环境好 开发成本低 开发成本低 易使用,学习成本低 支持用户更多复杂特性
6. 0 3
7. 基于MySQL做分布式数据库,相比单机,有哪些特点? 时延大 需要更高并发才能追上单机 01 02 网络路径长 高可用要求高 03 04 网络IO超越存储IO 成为最主要的瓶颈
8. 0 4
9. MySQL 8 有哪些坑? Coarse-grained latch 锁调度机制不合理 高可用机制不完善 默认字符集不同导致 的性能大坑 执行计划只考虑 单机 支持分布式事务的XA 代码存在大量bug 部分场景下 比5.7性能还差
10. Latch粒度和锁调度机制决定了MySQL并发能力
11. MySQL并发能力
12.
13.
14. 主要原因是 MySQL trx_sys所用的latch粒度太粗, 影响了读提交的并发扩展性
15. 官方MySQL读提交 vs 官方MySQL可重复读
16.
17. 通过trx_sys的latch拆分+ Read view优化来解决RC扩展性问题
18. MySQL灵异现象
19.
20. 针对读提交,高并发下MySQL设置 双1读写综合性能 往往更好
21.
22. 性能优化在复杂软件面前,往往是 追求一种平衡
23. 不同字符集 带来的性能差异
24.
25. MySQL XA机制 是实现分布式事务的基础
26. MySQL XA有哪些坑? 在刷xa prepare binlog之前没有写 入xid到undo 切主后 hang死问题 节点被杀,且一阶 段提交出现了 error,没有回滚 整个事务 涉及到 MGR xa replay的 并行回放问题 XA prepare bug related to crash recover 克隆(clone) 后相关的重复XID 问题 XA一阶段提交崩 溃导致丢数据问题 crash safe 相关问题 xa commit xa prepare
27. MySQL Group Replication 高可用机制不完善
28. MGR完善 需要重新设计 采用没有 认证数据 库的fast 工作模式 根据孟子 算法博士 论文改变 mgr里面 的paxos 算法 设计新的 流控算法 需要大量改造 为多主设 计新的认 证数据库 数据结构 增加地理 标签机制 relay log batching 入盘机制 xcom cache内 存分配静 态化机制 改进协程 调度机制 需要修复大量bug 为multi— master实 现完备的 OCC并发 控制算法 一致性读 写各种同 步问题 纠正多主 模式下的 工作流程 recoveri ng状态 下异常导 致的数据 索乱问题 各种视图 问题
29. MGR改造样例
30.
31. 单主新设计思路 Relay log批量入盘, 规避内存oom问题 1 1 规避流控 从库规避双1设置, 快速回放,DML幂等恢复机制 2 单主新设计 思路 无需采用认证数据库 采用Fast mode模式 2 切主走串行模式
32. MySQL执行计划只考虑 单机
33. 分布式数据库,往往 网络是主要瓶颈
34. MySQL NDB 都无法利用 网络 来优化执行计划
35. MySQL 8对5.7的性能改造目前 并不总是很成功
36.
37.
38. 根源在于MySQL 8.0.25的 trx_sys所用的latch粒度太粗
39. 最新版本在 trx_sys latch 进行了的一些简易拆分
40.
41.
42.
43.
44. MySQL 5.7.39 vs MySQL 8.0.30
45.
46.
47. trx_sys所利用的latch仍然可以进一步拆分,但 难度越来越大
48. 调度机制在MySQL 8多个地方仍然有 巨大的优化空间
49.
50. 困难是暂时的,前途是光明的
51.

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-17 01:40
浙ICP备14020137号-1 $Map of visitor$