设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客

职业人经验谈:我在MySQL的5年

2013-5-19 16:16| 发布者: joejoe0332| 查看: 3932| 评论: 0|原作者: 开源中国社区|来自: 开源中国社区

摘要:   加入MySQL社区之后,人们通常会在迎来一些高兴的周年纪念的时候写点博文。对那些很老的家伙来说的话,基本就是指加入MySQL工作的日子了。对我来说,那是2008年一月。因为月份没记对,我之后也没写什么东西,但是 ...

 

Volcano

在这5年里,我们克服了种种团难。也许正是这种患难与共才让我们的友谊如此持久和坚固。

这可不是什么收购戏剧或者社区的戏剧,2010年因为Eyjafjallajokull火山的爆发,参加完在旧金山举行的MySQL会议之后,所有飞往欧洲去的航班全部被取消了,所有欧洲里的人都困那儿了。

当时其中我们中的几个还有怀孕的妻子在欧洲的家里。回到家六周之后,我的女儿出生了,她也非常热情。我们几个把刚出生的孩子组成了“火山婴儿俱乐部”。

一个星期后过Mexico和Madrid我回到家Spain是我第一个看到非常干净天空的国家,那会我就想明白一点,踏上一块合适的土地是非常重要的一件事。在Mexico待了13个小时我才发现在这里我压根就不需要鉴证就可以坐地铁去任一个集市。你永远都不会知道MySQL会带你去哪儿。

2011年- MepSQL,Drizzle, 诺基亚 和 Galera


在我放弃Monty项目后,我还有几个月的假期. 我曾一度对艺术持续集成状态和克里斯蒂安·尼尔森所构建的MariaDB的构建系统感到好奇,并且试着尝试它. 第一步,我按照要求用buildbot模块运行AWS EC2实例. (MariaDB 一直使用预置的硬件).

从那时我一直想达到一种可以使用相通的脚本来构建两个普通的MySQL,Percona 服务器、MariaDB和其它任何一种MySQL分支的状态. 一个对于所有MySQL分支的统一构建系统!

事实上,这并有没想象中的那么简单, 事实证明,尤其是DEB脚本与给定名称的项目联系起来非常困难,并且这样还会产生大量的参数化工作. 唯一能从这个项目解脱出来的方式就是打包和发布Facebook分支的MySQL.
 

当我发现MariaDB和这个开源的数据库联盟并没有按我 所设想的那样成为一个广泛的、统一的项目的时候,我开始致力于为我自己找到一个中立的空间来继续为所有的MySQL分支做更多的工作。我可不想把我的工作 只提交给“MariaDB”或者只提交给“MySQL”,所以我给这个中立的,非供应商的区域起名为“mepsql",这是由“websql”的倒置过来 得到的。

就这样我创建了我自己的MySQL分支,并对 Stephen O'Grady解释的关于这种MySQl分支的"Cambrian explosion"现象在博客里面发表了我自己的看法。后来Drizzle发布了一个MySQl的一个GA版本,于是我觉得MySQl的分支太多了而我 的这个分支显得那么的不够严肃,所以为了不产生一些不必要的噪声,我默默地退出了MepSQL。我想给所有的Drizzle团队的成员一次公平的机会。但 是"High Performance MySQL"这本书的第三版还是简要地提到了MepSQL。这让Nokia的那些DBA们非常自豪,因为他们发现自己原来在和一个很有名的人共事:-)

我在MepSQL上所下的功夫在Nokia面试的时候派上了大用场,面试官们问了一些bash shell的操作和一些EC2的知识,所以在那次面试中我表现得非常抢眼。

Nokia之前已经和两个MySQl的供应商合作过,所以 他们为我提供了一块“中立的领土”。他们并不关心我对于MySQL的想法,因为我不再和这些你争我斗的不同的MySQL分支有所关联,所以总有一天所有反 对MySQl的声音都会消失。而我的博客,还是跟以前的内容一致。事实上我只见过三个踩我博客的人。也许现在大家的看法都要趋向一致,没人再反对了?

我加入Nokia之后虽然它并没有被收购,但确实发生了一 次非常大的机构调整。在我和Stephen Elop之间我还有五个经理,他们中的三个都离职了,这让我们的团队出现了非常大的空缺。接下来的六个月里我们无事可干。我并不想怎样刻意地夸奖 Drizzle,但我确实要感谢它让我有了更多更加成熟的想法。我把我的个人笔记本带到了办公室并在上班的时间里深入地学习和研究了Google的开源的 JavaScript引擎V8,并对HTTP JSON API有了更加深刻的理解。同时我还作为GSOC的指导老师带了一个非常有前途的的学生,如果你要找一个不错的黑客,就联系我吧。

我是一个数据库顾问,所以之前我从来都没有像那段时间一样写过那么多的C++代码。另外我还认真学习了MongoDb和Couchbase的JSON查询语言并用来作为Drizzle的JSON API原型。这对我的下一份工作还多少有点用处......

Nokia聘用我是为了解决MySQL高可用性和数据备份 与恢复的问题。在评估了例如Pacemaker等设备一周之后,我坚信了这样一点:基于故障转移的系统永远都不可靠。(今天我要澄清的是,采用独立的软件 来处理复制和故障转移这是设计上的不完整。比如说MySQL的故障转移并不在内部进行,而是采用了NDB的协议,这也一直为人诟病。虽然我个人没有 MongoDB备份的经验,但我相信它也是采用同样的故障转移机制。)

我是怎样发现Galera系统的呢?读了Amazon Dynamo协议之后我大受启发,在这个协议里,节点的故障不会产生任何影响,虽然在一个关系数据库里面这是不可能的,但Galera系统至少为我们提供了这样一些相似的属性。

在过去的5年里,我做了很多非常有意思的事,但就纯技术而言,我相信支持和帮助Galera系统获得了主流的采用是我为MySQL做的重大的技术突破之一。当然,由于开发人员都是芬兰的,这使得他们成为了另一个和我关系特别密切的团队。

Percona和MySQL大会

除了帮助SkySQL开张,帮助一些其它的企业家开张也很不错。我所做的都是些小事,他们向我寻求建议时我会和他们分享我的想法,比如安排一两场客户演示会、在我们的博客里提及某人或者安排一场招聘会或合作洽谈会。

在这方面我和Percona关系不大。他们已经成长起来 了,雇用了很多人才,可我和他们没有什么关系。非常好笑的是,我不止一次被怀疑是一位“Percona人”。我想,这是因为我在做各种我认为对整个社区都 有益的各种事情时,我的动机通常和Percona的商业动机不谋而合。

Percona的确在一开始就认识到了, 他们支持对整个MySQL生态系统有促进作用公司,包括他们所谓的竞争性公司SkySQL和Oracle,因为他们可以因此而获益。对有的人来讲,这跟他 们的直觉正好相反,并会因此而感到迷惑不解。但实际上,这在商业上意义非凡:平均来讲,Percona的成长速度比市场的成长速度要快,所以,对市场中的 其它供应商的成长给予支持是有道理的。Baron 甚至在博客中公开地说,他认为SkySQL在欧洲干得不错,这非常好。因为Percona在欧洲很少露头。几年后,Percona已经能够在技术团队和销 售团队方面进行扩充了。现在MySQL的市场已经成长起来了而且仍然还在不断正在,他们利用了这中情况。要是没有SkySQL和MariaDB,谁知道那 些客户现在会在哪里?他们现在用的可能会使PostgreSQL或者甚至是SQL Server。(当人们对MySQL的未来有所怀疑时,绝大多数都会选用这两个产品。)

一直以来,Percona的成长都令人欢欣鼓舞,因为这正好证实了我所信奉的两个原则。

头一个就是我们从其它开源生态系统中了解到的规律,就是“更加开放”的可选方案通常最后都会胜出。例如Red Hat同Suse或者OpenStack和Eucalyptus。 关于这个现象我最近单独写了一篇文章。MySQL AB可能是对这个规律形成挑战的最重要的一个公司,Percona的胜利总体上对开源来说非常重要。

更重要的是,Percona作为更加开放的公司取得的胜利 也为别的选择称为更加开放而不是封闭的公司打造出了一个市场氛围。当我同Codership一起销售Galera时这一点非常明显。在集群领域中,我们有 半打的创业公司采用了MySQL HA解决方案进入的市场:Schooner, GenieDB, ScaleDB, Clustrix, Xeround。。。其中每个公司都拥有数千万的VC投资。其中一家公司甚至OEM了Galera,所以它从技术上讲是同一种解决方案,要说区别只要一 点,他们试了闭源的解决方案。这个市场反而被来自芬兰的4个身无分文的家伙占领了。他们是开源的,而且他们同Percona的合作关系意义深远 —— Vadim的第一篇博客就象来自教皇的祝福!我愿意认为Tokutek将他们的产品开源后最终也会取得同样的成功。Vadim已经首发了用Tokutek 和Percona服务器编译的alpha版的产品。

另外的一个原则是我父母教给我让我信奉的: 能力(或者是“教育”,常话都是这么说的)是资本的一种形式。当我审视Percona的成功并将它和同一领域中的供应商进行比较时,可以很保险地说,如果 要我在能力和1千万的VC投资两者间做出选择的话,我宁愿选择能力。Peter、Vadim 还有Baron,你们干得好!(话虽如此,也要祝Baron好运,希望这次投资还能够支持他继续进行下一次的风险投资!)

因为要一起努力保持MySQL大会继续活跃,最后我和PeterPeter, Vadim以及Baron混得相当熟I了。话说这已经是2009 年的事了,远在监管机构审批通过这次收购之前。Oracle内部的“告密者”同我以及Monty计划的其他参与者进行了接触,告诉我们Oracle已无意 继续举行2010年的大会了。我们把这个消息传达给了O'Reilly,O'Reilly作出了相反的决定,他们将继续单独举办大会。Oracle经过两 年的犹豫不前,最终在2010和2011两年都没有参加大会。

Oracle不再向他们的MySQL用户推广MySQL大 会了,而那时Percona和SkySQL的力量还相当小,与会者因此变少了,最终O'Reilly不得不直面再这么继续下去可不是个事了这个事实。在 2009年,Percona被Sun/MySQL排斥到大会之外了,这反而正好促使Percona开始组织他们自己的Parcona现场大会。到2012 年,他们已经有了足够的信心,感觉他们自己可以将大会从O'Reilly手中接管过来了。话说不利可能最终会变成有利,这正好就是个例证。

Percona成为了大会最优秀的主办方。 他们竭力使大会成为一个对所有人都开放的兼收并蓄的大会。特别是在2012年,Oracle起诉了Google并企图消灭MySQL,许多人给 Percona发来电子邮件说Oracle在作恶而且还有其它一些理由,请求他们不要邀请Oracle参加大会了。Baron对这些请求回复到(我在私人 邮件中看到过),他们的会议将欢迎所有人参加,因为他们自己知道被排斥的滋味,所以他们绝不会排斥任何人。2013年,Oracle对邀请做出了回应,而 且他们在大会上的演讲颇受欢迎。那两年的大会也对Percona的竞争对手开放,甚至还对抱有个人恩怨的人开放,这些人知道他们到底是为了什么,曾经时不 时试图对大会进行暗中破坏或抵制。甚至Percona还为免费的SkySQL日进行宣传,而SkySQL日的举办时间同主要的大会挨得很近。还得说,这在 企业理念方面很有意义,但并不是每一个企业管理人员总能够理解这一点。真的是非常了不起,我们能够见证到Percona在这个领域中完全投将他们自己身于 100%的开放性和包容性。

在这一点上我想我应该说一下,今年有件事做得有点过了。尽 管我很钦佩Percona不计前嫌,能够继续回邀曾经攻击过他们的人,但我想,在与会者(甚至还包括非与会者)攻击其他与会者方面,应该规定一个度。我们 绝不允许让开源大会变成一个让与会者们因为他们甚至都未曾谋面的人所发的轻率的推特消息或博客而不得不担心可能会丢掉工作(甚至更糟)。好在 Percona在过去的两年中已经显示出了他们坚持包容性和宽容性的决心,现在他们具有足够强的地位,可以让他们确保,大会将继续保持成为一个他们竭力打 造的具有包容性和建设性的大会。

奖品

伴随大会的还有一个传统就是一年一度的MySQL奖品。当 Oracle不再支持2010年的大会后我们继承了这个传统。Colin发现马来西亚有个地方卖的酒杯很不错,于是每年都从马来西亚进口一批这样的酒杯。 我在36小时内在社区中安排了一个选拔获胜者的评判小组。Shlomi是一位专题讨论小组成员(他是前一年的获胜者),他快马加鞭,基于 wordpress建成了一个投票系统,该系统我们今天仍在使用。我走后,他们还会将这个传统继续下去。

我认为,由于是通过一个独立的评判小组来决定谁来获奖,所以这种奖励才有了良好的声誉。获奖者总是因为获得我们的奖品而感到十分自豪,能够让人如此快乐的感觉妙极了。即使是那些再多次获奖的人也认为获奖是件了不起的事情,因为他们说 —— 赢得这个奖项可不同寻常。

我一直主张,评判小组可随心所欲地根据他们心中的任何理由 来奖励任何人。不过这里还有个例外,我成功说服了我自己,不能让我自己通过选票而获胜。我的解释是,一个人站在台上然后自己颁发给自己奖品的感觉太怪异 了。但我有个小秘密:每次大会我都不是空手而归!2010和2012两年中,我们在奖品购置方面都有点问题,每年都多出了一个杯子。我当然就把它们归为己 有了。所以,我终究还是获了不少奖:


酷毙

雷人
1

鲜花

鸡蛋

漂亮

刚表态过的朋友 (1 人)

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号