因为MySQL Cluster的分布式构架,考虑到整个MySQL Cluster的启动和恢复效率问题,MySQL Cluster的日志跟传统的事务数据库(比如InnoDB)有很大的差别。
MySQL Cluster的Redo log不再是直接记录更改的page内容,而采用记录操作日志,以用于全局恢复数据用。整个用于Revocery的日志采用 LCP+GCP协作完成。当中LCP只针对当前数据节点,在一定数据量(数据量大小)被更改之后,同步一次内存(DataMemory)和磁盘内容,每个节点保留3份(新版保留2份);而GCP是全局日志,默认是2秒(时间)中将Redo Log Buffer的内容同步到所有的数据节点的磁盘上,用于突发事件恢复使用。 … 【阅读全文·MySQL实验室】
前2天去北京参加了2010数据库技术大会, 我演讲的主题是:《MySQL分布式集群高可用设计及应用》,主要是介绍MySQL Cluster,现在把PPT共享出来。
… 【阅读全文·MySQL实验室】
Two-phase commit(两阶段提交, 文中用2PC代替)是一种比较精简的一致性算法/协议。在事务处理、数据库和计算机网络中,两阶段提交协议提供了分布式设计中的数据一致性的保障,整个事务的参与者要么一致性全部提交成功,要么全部回滚。MySQL Cluster内部数据的同步就是用的2PC协议。 by ivan@mysqlab.net
故名思意,2PC算法包含两个阶段:commit-request 和 commit。
第一阶段(commit-request): 组织者(coordinator)负责询问事务的所有参与者(participants)是否可以提交或者取消事务(回滚)。 这就好比班长组织班级所有同学某时间参加班级大会一样,要么所有人都参加,要么取消会议。 … 【阅读全文·MySQL实验室】
忽如一夜春风来,人人开口NoSQL。NoSQL现在是火了,可大家有想过没,其实NDB, InnoDB是很好的NoSQL数据库,InnoDB有double write buffer可以保证数据的安全性而且身经百战,NDB提供API可供直接调用。而且如果你愿意,你可以在InnoDB前面加上MySQL,它就变成了关系型数据库;NDB加上ndb引擎,结合MySQL摇身一变,也成了关系型数据库。

最近一直在学习研究MySQL Cluster,今天正好也看到消息说支付宝在测试IBM DB2 Cluster,16个数据居节点,1个管理节点,采用万兆网卡连接。DB2 Cluster跟MySQL Cluster采用同样的share-nothing构架,网络对它来说至关重要。
但是我这里要说的是,虽然MySQL Cluster发展到今天已经取得很大的成就,性能翻了好几倍,也开始支持磁盘存储(非主键、索引),但是它有致命的弱点:不支持真正的ACID(整个机群down掉的时候,最新GCP之后提交的事务丢失).
话说回来,虽然缺点还不止上面提到的这些,在很多情景下不适合使用,但是不可否定它的高明。在高可用和写负载均衡上它的确是性价比很高的解决方案,比如session管理、用户管理等。
MySQL Cluster DBA 证书
MySQL 5.1.42 预计在今年(2009)12月18日发布,其中会包含最新的Innodb Plugin。新的InnoDB Plugin在除了支持Data compression和Fast index create特性之外,兼容之前的表空间,并加入了大量Google的patch,极大的提高了Innodb的性能。
MySQL 5.4 GA 预计可能在明年夏季,roadmap如下图:

MySQL 5.5 会加入Google semi-replication patch,Google原链接。
MySQL Cluster Manager 加入自动管理功能,不过应该会收费。
———————————————-
这几天去fetion看了他们的DB,服务器奢侈(可能穷惯了),性能也很强劲30k+的QPS。不过构架有些问题,以后我想应该会改;另外还去了现场帮客户解决问题。至此来北京的计划全部打乱。下次一定提前安排,组织一次MySQL实验室聚会。
geographic-replication-deep-dive(PDF)下载
其中异构复制的时候有些技巧,比如 不同的mysqld只复制一部分表,从而避免延时的出现。
最近评论