Benchmarking Puppetmaster Stacks (转载)

It’s been a long time since my last puppet blog post about file content offloading. Two puppetcamps even passed (more on the last one in a next blog article). A new major puppet release (2.6) was even released, addressing lots of performance issues (including the file streaming patch I contributed).

In this new major version, I contributed a new 3rd party executable (available in the ext/ directory in the source tree) that allows to simulate concurrent nodes hammering a puppetmaster. This tool is called puppet-load.

Rationale

I created this tool for several reasons:

I wanted to be able to benchmark and compare several ruby interpreter (like comparing JRuby against MRI)

MySQL数据库分布式事务XA的实现原理分析

1       原理

关于MySQL数据库的分布式事务XA,分布式事务实现的原理,可见[3];关于MySQL XA的说明,可见[1][2]。

MySQL XA分为两类,内部XA与外部XA;内部XA用于同一实例下跨多个引擎的事务,由大家熟悉的Binlog作为协调者;外部XA用于跨多MySQL实例的分布式事务,需要应用层介入作为协调者(崩溃时的悬挂事务,全局提交还是回滚,需要由应用层决定,对应用层的实现要求较高)
本文,假设读者已经知道MySQL数据库外部分布式事务XA的使用,而将重点放在MySQL数据库,如何处理外部分布式事务XA的crash recover,以及面对不同的crash recover的情形,应用程序如何处理,才能够保证分布式事务的一致性。最后,本文简单分析一下目前MySQL数据库外部XA支持存在的问题,以及可选的解决方案。

MySQL数据库分布式事务XA优缺点与改进方案

1       MySQL 外部XA分析

1.1     作用分析

MySQL数据库外部XA可以用在分布式数据库代理层,实现对MySQL数据库的分布式事务支持,例如开源的代理工具:ameoba[4],网易的DDB,淘宝的TDDL,B2B的Cobar等等。

通过MySQL数据库外部XA,这些工具可以提供跨库的分布式事务。当然,这些工具也就成了外部XA事务的协调者角色。在crash recover时控制悬挂事务是全局commit,或者rollback。

在crash recover之后,外部应用程序可能会遇到以下几种情况:

  • 情况一:分布式事务对应的MySQL数据库实例,部分完成prepare,部分未完成prepare。此时直接回滚完成prepare的实例即可。n_prepared < Total Nodes (处于prepare状态的节点数量要小于参与分布式事务的所有节点总数)。

linux下源码包制作成rpm包教程

[导读]

在puppet cookbook系列文档中,sky就不至一次的提到过使用puppet 来管理软件包,而大多数

同学都会问,那我下载的.tar.gz的压缩包怎么办呢?那如何使用puppet来管理呢?关于源码包的

安装,之前有篇文章已经介绍了从源码包构建包,sky还是会建议大家把源码包制作成rpm包,

放进yum仓库,再使用puppet来管理,这样会方便许多,做运维的,你懂的.

puppet运维之使用自定义函数

[导读]

上一篇puppet rsync使用教程,sky提到自定义函数,以及自定义provider和fact.本小节主要是介绍在puppet

下如何编写自定义函数,自定义函数在puppet 使用过程中有什么需要注意的地方,以及puppet 自定义函数是

如何执行的等,要知道答案么,答案均来自puppet 官网<<Writing your own functions>>,主要是sky,对ruby的语法

不是很了解,估大家请见谅.let’s go!

puppet使用rsync来同步文件教程

[导读]

大家都知道,puppet 同步文件都需要使用puppet 文件服务器,且同步大文件的效率比我们运维经常

使用到的rsync效率低且puppet 文件服务器只支持http和puppet 文件传输协议,幸运的是老外给我

们写好了自定义的provider和相关插件,现在我们只需要下载rsync模块就可以来完成.是不是很期待,

一起来跟sky尝试下吧!

Avinash:关于网站分析的3个忠告

主笔:光明

在网站分析领域,Avinash是被大家顶礼膜拜的对象。对于网站分析,没有人能比Avinash更好地把它阐述得简洁有力,没有人比Avinash更理解互联网的用户行为,Avinash多年不懈的努力帮我们揭开了网站分析的神秘面纱。

上一篇博文分享了Avinash关于如何正确启动网站分析的观点,今天继续分享他的一些观点,确切说是一些忠告。为了赢得网站分析的胜利,Avinash的身上可谓伤痕累累,下面就是他在网站分析前线战斗多年后,分享给同行的3个重要忠告。