前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL Galera Clusters全解析 Part 2 基于认证的复制

MySQL Galera Clusters全解析 Part 2 基于认证的复制

作者头像
bsbforever
发布2020-08-18 16:10:17
5230
发布2020-08-18 16:10:17
举报

前期回顾

MySQL Galera Clusters全解析 Part 1 Galera Cluster 简介

上节我们简单介绍了Galera Cluster,说到Galera Cluster 中各节点的事务同步是通过基于认证的复制进行的,这节详细说明下

基于认证的复制使用组通信(Group Communication) 和事务排序技术( transaction ordering techniques)来实现数据库的同步复制

1. 基于认证复制的要求

我们并不能在所有MySQL数据库中部署Galera Cluster,他需要如下要求

Transactional Database

数据库必须支持事务,特指可以回滚未提交的变更

Atomic Changes

原子性,被复制的事务必须全部完成或全部不成功

Global Ordering

Galera Cluster中所有节点的事务必须被全局的排序,即以相同的顺序在所有节点执行

2. 基于认证复制工作流程

基于认证的复制的主要思想是,只要没有冲突,事务就会按正常执行,直到达到提交点。这称为乐观执行

首先当一个客户端在一个节点执行commit命令,在实际提交之前,将更改数据库的事务和变更的主键信息结合成写集(write-set),之后数据库将写集发送到其他节点

之后使用主键对写集进行一次确定性的认证测试(deterministic certification test),这个测试在每一个节点中执行,包括生成该写集的节点,该测试将决定节点是否可以应用写集

如果测试失败,则节点会丢弃该写集并回滚原始的事务,如果测试成功,则事务完成commit并且其他节点也会应用写集

3. 基于认证的复制在Galera中的应用

上面我们说了基于认证的复制的原理,下面来说下其是如何在Galera中工作的

在Galera中基于认证的复制依赖于事务的全局排序(global ordering of transaction)

Galera给集群中每个事务分配一个全局的顺序数,也叫做seqno,类似于Oracle的序列,自增的

当一个事务开始提交,节点会将该事务的seqno和上次成功的事务的seqno做比较

这两个seqno之间的所有事务会进行主键冲突检测,如果有冲突则认证失败

这个过程是确定的而且所有事务按照相同的顺序接收,所有节点达到一致时,原始节点会通知客户端程序该事务是否被提交成功

4. 参考资料

https://galeracluster.com/library/documentation/certification-based-replication.html

觉得文章不错的欢迎转发,收藏~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 宅必备 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前期回顾
  • 1. 基于认证复制的要求
  • 2. 基于认证复制工作流程
  • 3. 基于认证的复制在Galera中的应用
  • 4. 参考资料
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档