MariaDB虽然被视为MySQL数据库的替代品,但它在扩展功能、存储引擎以及一些新的功能改进方面都强过MySQL。谢谢张树杰同学为我们准备的这系列MariaDB。希望大家能够喜欢。
分布式数据库/数据库集群系统中数据库复制是十分重要的,常用的有以下两种架构:Master/Slave Replication架构(左)和Multi-master Replication架构(右)。
Galera Cluster提供了并行的复制机制,能实现同步的,多主的复制方式。因此具有很多实用特性:
(1)可以在任意节点上进行读写
(2)自动剔除故障节点
(3)自动加入新节点
(4)真正行级别的并发复制
(5)客户端连接跟操作单数据库的体验一致。
在数据复制方面有同步和异步两种方式,而同步方式的优势十分明显:
(1)高可用(当节点宕机时数据不会丢失,数据复制一致性高,实现不复杂);
(2)具有较高的性能;
(3)跨集群。但是缺点是随着节点数量的增加,其事务的响应时间,冲突的概率和死锁率会呈指数增长。(因此像MySQL和PostgreSQL都采用异步复制方式)
克服同步复制的缺点,现在主要的技术包括:Group Communication,Write-sets,Database State Machine和Transaction Reordering。Galera Cluster使用一种称为Certification-based Replication的策略实现集群同步制,Certification-based Replication综合使用了Group Communication和Transaction Reordering技术。具体来说:事务可以在任意单节点上执行或者复制,但是在事务在提交时,会运行一个协调认证程序来保证事务的全局一致性,它借助广播服务,建立一个全局的并发事务。
Certification-based Replication的主要思想是数据库中的任何事务在未到达提交点(commit point)时,会假设没有任何冲突。在事务commit发生之前,这个事务将会引起的所有数据库变化和所变行的主键都会被收集到一个write-set中。然后会把这个write-set发送到集群中的其它节点上。有了write-set,此时集群中所有的节点会使用主键执行一个certification test,如果失败则丢弃write-set并且回滚事务,如果成功则事务会被提交并将write-set应用到集群中其余的节点。而Galera Cluster中使用Certification-based Replication策略则依赖于一个全局的事务序列。
为了方便大家相互交流学习,创建了一个公众号同名微信群:《大数据和云计算技术交流群》,人数已经2500+,欢迎大家加我微信。
閱讀更多 大數據和雲計算技術 的文章