78C36620 23AE 3931 A620 03FF6FC1C1DA
登录发表评论
文字内容
1. T E 网易考拉基于MGR的跨机房实践 N . B U P IT 网易 郭忆
2. T E N . B 01 深入MySQL Group Replication 02 基于MGR 多副本高可用集群架构设计 02 03 基于MGR Muti-Primary水平扩展方案 02 04 基于MGR的跨机房高可用实践 IT U P
3. MySQL 数据库的高可用发展历程 Share Nothing Master-Slave Rpl Share Storage MMM DRBD MHA Loss-Less Rpl Binlog DW Aurora Galera SAN MGR PolarDB
4. MySQL Group Replication 多副本数据库集群面临的挑战 • • • • • MySQL 5.7.17 Release A new MySQL Plugin Muti-Duplicate Cluster Data Consistency Single/Muti-Primary mode 全局事务的排序 Mencious 成员节点的管理 Group View 冲突检测机制 Write Set 节点处理能力协同 Flow Control
5. MGR 事务提交处理流程 Client • • • • • • • • • • Client Execute DML Native Processing Before Commit Hook GTID Allocated Create WriteSet Flow Control Paxos Instance Certification Write Relay Log Parallel Replay Other Server Server UPDATE Other Server Native Processing OK COMMIT Paxos Certification OK Certification Not OK Commit OK Not OK Commit rollback Certification OK Not OK Commit rollback rollback
6. accept 全局事务的排序 0,3,6… 3*n prepare A prepare accept Basic Paxos A accept A 1,4,7… 3*n+1 P accept P accept accept A A P1 accept P P2 accept A 2,5,8… 3*n+2 Raft/Multi Paxos A A A A accept A accept A P3 Mencious
7. 全局事务的排序 Paxos Instance Paxos Instance No. Paxos Msg
8. 全局事务的排序
9. 全局事务的排序 存在问题: • 用户请求不均衡,集群处理速 度受限于集群中处理最慢的节 点 • 成员节点宕机或者出现网络分 区,无法发送Skip,导致其他 节点日志无法提交 解决方案: • 基于逻辑时钟,慢的节点收到 快节点的suggest请求,Skip 当 前序号到请求序号之间的请求 序列 • 由被选举的新的节点接管提案 权力,将新节点未被宕机节点 learned到宕机节点序号之间的 提案需要重新提议
10. 成员节点的管理
11. 冲突检测机制 Write set: • 每个事务新增加一个Log Event (Transaction_context_log_event) • 包含信息 • 事务更新的主键 • 数据库快照版本(gtid_executed) • 只在内存中维护,不写入binlog 文件,保证兼容性 冲突检测: • 每个成员节点按照相同的次序(Paxox协议保障), 分别进行冲突检测 • 每个成员节点都维护了一个“冲突检测数据库”, 所有待检测的事务对应的数据库版本必须大于冲 突检测数据库中已经通过检测的记录的版本 • 所有节点都已经执行的事务对应的记录会从冲突 检测数据库中异步purge
12. 节点流控 为什么要引入流控机制: • 确保集群内各个节点的延迟 尽可能的小 • 避免Fail over时relay log 回放 时间过长 流控机制: • 检测对象:事务个数 • 作用对象:本节点写事务 • 调控周期:默认1秒
13. 01 深入MySQL Group Replication 02 基于MGR 多副本高可用集群架构设计 02 03 基于MGR Muti-Primary水平扩展 02 04 基于MGR的跨机房高可用实践
14. 基于MGR的高可用架构设计 MGR 提供了什么? MGR 没有提供什么? • 基于Paxos协议实现的数据同步 • 客户端的切换方案 • 宕机自动选主 • 新成员节点加入,Donar节点随机 • 多节点写入的冲突检测 • 复制延迟 • Failover后集群内数据修复 • 大事务支持不足,容易OOM • 基于write set 的并行复制 • 新节点加入,SST 不支持
15. 基于MGR的高可用架构设计 客户端切换: • Replication_group_members 识别主从切换 • 通过group_replication_weight 影响选主 • 等待所有远端同步的日志回放 Count_transactions_in_queue + Count_transactions_remote_in_applier_queu e • 管控服务通过调用弹性网关服务切换客户 端的状态 故障切换的修复 • 重启实例,加入集群 • 在Secondary 全量备份,重新加入集群 Customer VPC Application R/W RDS VPC R 192.168.8.16 192.168.5.12 Primary 10.172.15.2 Avaliable Zone Secondary 10.172.15.3 Avaliable Zone Secondary 10.172.15.4 Avaliable Zone
16. 基于MGR的Single-Primary 方案 • Secondary 读到过旧的数据,最终数据一致性 • 大事务导致OOM • Single-Primary 冲突检测不需要,但是并行复制需要,可以限制冲突检测数 据库大小 • 流控 • Group_replication_flow_control_applier_threshold/certifier_threshold
17. 网易针对MGR 做的功能增强(一) 当前的问题: • 冲突检测数据库占用过多内存导致数据库OOM Crash 问题的原因: • MGR 各个节点每隔60s 广播各个节点的gtid_exected • 各个节点取交接后形成stable_gtid_set • 当冲突检测数据库中每个Row对应的gtid_set是stable_gtid_set子集时,可 以清理 新的技术方案: • Single-Primary 模式下或者中间件层已经能够确保事务不冲突的场景下不 需要冲突检测 • 直接根据Write set 个数清理
18. 网易针对MGR 做的功能增强(二) 当前的问题: • 冲突检测数据库中Write set过 多导致性能抖动 问题的原因: • 原有流控方案是针对事务的, 对于一个事务更多多个记录, 会导致冲突检测数据库write set 过多 • Write set 过多导致清理会很慢, 锁引发周期性能抖动 新的技术方案: • 针对Write set 流控机制
19. 01 深入MySQL Group Replication 02 基于MGR 多副本高可用集群架构设计 02 03 基于MGR Muti-Primary水平扩展 02 04 基于MGR的跨机房高可用实践
20. 基于MGR Muti-Priamry 方案 解决了什么问题? 存在什么缺陷? • 单点写入性能瓶颈 • 如果存在大量冲突会导致性能很差 • Secondary 资源浪费 • 不管是否存在冲突都必须要进行冲 突检测
21. DDB + Single Primary MGR 优势: • 数据库单表水平扩展 • 每个Shard两个副本高可用 劣势: • 高可用备节点资源浪费 • 数据副本的重建耗时高 • 同步复制网络容忍性低
22. DDB + Muti-Priamry MGR • 每个Shard 三个副本,只有一个 提供读写服务,副本之间基于Paxos 协议实现数据同步 • MGR 集群内每个节点都承担了一 部分Shard的读写,充分利用每个节 点的资源 • 任意一个节点宕机,请求被分配 到不同节点上,重建通过不同Donar 节点,速度提升
23. DDB + Muti-Priamry MGR
24. 01 深入MySQL Group Replication 02 基于MGR 多副本高可用集群架构设计 02 03 基于MGR Muti-Primary水平扩展 02 04 基于MGR的跨机房高可用实践
25. 同城双机房部署方案的选择
26. 网易考拉基于MGR的同城跨机房高可用架构设计
27. 基于MGR的异地跨城容灾
28. 基于MGR的异地跨城容灾
29. 基于MGR的异地跨城容灾
-
1
267E0EED 82D8 18D7 33...
Cartel
-
2
E2FCD774 048F 841A 31...
Cartel
-
3
B7AFDC0D A07F FD0C 3C...
Cartel
-
4
33796CDB 24FA F284 A8...
Cartel
-
5
B0BBAE20 2FA1 C595 1D...
Cartel
-
6
F74ABDB2 2438 712F 4D...
Cartel
-
7
EAEF2D0D 423C 3E0F 2C...
Cartel
-
8
28C29C09 2934 F713 CC...
Cartel
-
9
BED85A50 C1DC 169E BB...
Cartel
-
10
A77A6E7D D24A 24AA F4...
Cartel
-
11
A33E90D5 C9CC 9BB5 C1...
Cartel
-
12
74B5B7AD 7E55 F8BB F7...
Cartel
-
13
F3EB1B52 14A4 A331 30...
Cartel
-
14
DEB15A37 524C C558 B5...
Cartel
-
15
7F85E4F4 848B 7129 81...
Cartel
-
16
DE126576 FFE3 EF95 5F...
Cartel
-
17
CBF672E1 90F4 C05A F6...
Cartel
-
18
518C90B7 4EEE 0B47 67...
Cartel
-
19
分布式数据库助力金融科技架构转型
Cartel
-
20
189656CB CB87 3CB7 8F...
Cartel
-
21
CE9C9392 6005 A935 1A...
Cartel
-
22
BA2627EB B856 1C95 2C...
Cartel
-
23
CE519D9E A7A5 5168 23...
Cartel
-
24
2EE0A48C 14F0 6B8C D2...
Cartel
-
25
F0A2A087 3BC3 3028 6F...
Cartel
-
26
7B058401 C6B5 45EB 90...
Cartel
-
78C36620 23AE 3931 A6...
Cartel
-
28
6CBFE772 6051 81A2 10...
Cartel
-
29
2927DB20 DD00 492A 8D...
Cartel
-
30
83F652A8 51D0 C23B A6...
Cartel
-
31
57E2C3F0 5806 1E2D DE...
Cartel
-
32
075FBBB0 0D09 1343 21...
Cartel
-
33
B3544016 1C66 385A 42...
Cartel
-
34
EB6608BD D503 3F98 F1...
Cartel
-
35
1D9E51C6 CEDB DA9B 15...
Cartel
-
36
E39023D8 0364 1E71 00...
Cartel
-
37
4AB1F812 4E8B 4DEC 53...
Cartel
-
38
83D50A4A 0BD2 3E1C 9C...
Cartel
-
39
F85D5A39 8626 0627 F0...
Cartel
-
40
ABC5A447 9632 0350 52...
Cartel
-
41
7573AA91 B43C AE3A BD...
Cartel
-
42
DBF86929 4AE1 CAD7 B3...
Cartel
-
43
4D4B8441 83CF 640A 24...
Cartel
-
44
6DCD79D8 6E4A DF88 52...
Cartel
-
45
A376EA86 A576 9319 67...
Cartel
-
46
5E296F32 EE21 EA6D 60...
Cartel
-
47
3BD8D59B 20F3 FE8A 17...
Cartel
-
48
2F0200AD 8839 E26B 6E...
Cartel
-
49
6D2277BD 78AD E72D 1E...
Cartel
-
50
84FC1C89 4783 C388 F4...
Cartel
-
51
28D4AA9A 8A25 1322 4A...
Cartel
-
52
C249EEC3 F163 1DC3 A2...
Cartel
-
53
624CF535 FC2C 586A 50...
Cartel
-
54
D14FFCFD BE50 EF53 E6...
Cartel
-
55
03C4A47F C9E9 6F29 D5...
Cartel
-
56
C1D4A4F4 BDAD 7FE5 9E...
Cartel
-
57
FD21B973 A389 038C C1...
Cartel
-
58
E4535CC0 7AE3 E1DF 25...
Cartel
-
59
B751567F 61B3 A9B9 6B...
Cartel
-
60
A2C30010 FC42 CDEA 47...
Cartel
-
61
F630429A FBA5 294C 54...
Cartel
-
62
2013AF59 804F 2DB8 EF...
Cartel
-
63
AB250C8D 09AF DD22 DB...
Cartel
-
64
F12A7630 77D0 C87A 45...
Cartel
-
65
746BAAD0 105A 0164 60...
Cartel
-
66
092BF76E 6971 4261 45...
Cartel
-
67
C9B5BB24 8A97 7358 8F...
Cartel
-
68
BEDF9E44 254C 4F84 D9...
Cartel
-
69
0C1449B2 9931 202F 24...
Cartel
-
70
D6EBCC71 5A01 315A 9F...
Cartel
-
71
A0550C5C CA93 08F8 56...
Cartel
-
72
781CB040 1AD0 BE35 C2...
Cartel
-
73
1BB528AB 99FA 2395 6F...
Cartel
-
74
436F7BEB F345 BC92 9C...
Cartel
-
75
36F86910 4669 9B76 63...
Cartel
-
76
A3EA3B10 A3A1 2370 42...
Cartel
-
77
D55E1DD4 9BC9 860F 14...
Cartel
-
78
6356368D 645B C68E B2...
Cartel
-
79
9CAB16CC 3C47 5F82 73...
Cartel
-
80
C128CA17 E041 9CAC 8D...
Cartel
-
81
FDCEB27E 5381 6581 B1...
Cartel
-
82
8FEEDD4D 550F 17BC 1C...
Cartel
-
83
C6258456 40D9 BAA6 DB...
Cartel
-
84
1923C10F F21C BEE5 1B...
Cartel
-
85
0DE711CA D522 4458 31...
Cartel
-
86
50D041B9 4BB1 6C72 6F...
Cartel
-
87
BBE21A87 5F72 0F85 73...
Cartel
-
88
FB916CFF ED98 970E 19...
Cartel
-
89
EB858852 B693 9D95 2F...
Cartel
-
90
EA9D065D C104 AB0D 84...
Cartel
-
91
CAD16822 5982 62F1 9D...
Cartel
-
92
DADAD910 FCD0 5077 3A...
Cartel
-
93
7E261F8A 1B2A 3232 17...
Cartel
-
94
25E6933A 075C 7670 DE...
Cartel
-
95
9FBE5886 A505 836B CB...
Cartel
-
96
3166E1DD 5B74 EA5A 8E...
Cartel
-
97
0C1DC927 961E AB8B A1...
Cartel
-
98
22ACDD53 526D 1614 C3...
Cartel
-
99
B268AC98 F047 6C85 4D...
Cartel
-
100
C58F7C3E 3648 A972 10...
Cartel
-
101
075FB80E B296 F229 AD...
Cartel
-
102
9EB12E69 92A1 5197 75...
Cartel
-
103
5FCE8525 9B2E A5FF C0...
Cartel
-
267E0EED 82D8 18D7 33...
Cartel
-
分布式数据库助力金融科技架构转型
Cartel
-
518C90B7 4EEE 0B47 67...
Cartel
-
0DE711CA D522 4458 31...
Cartel
-
57E2C3F0 5806 1E2D DE...
Cartel
-
A376EA86 A576 9319 67...
Cartel
-
A2C30010 FC42 CDEA 47...
Cartel
-
746BAAD0 105A 0164 60...
Cartel
-
3BD8D59B 20F3 FE8A 17...
Cartel
-
2927DB20 DD00 492A 8D...
Cartel
分享











