我加入MySQL的5年時(shí)間
加入MySQL社區(qū)之后,人們通常會(huì)在迎來(lái)一些高興的周年紀(jì)念的時(shí)候?qū)扅c(diǎn)博文。對(duì)那些很老的家伙來(lái)說(shuō)的話(huà),基本就是指加入MySQL工作的日子了。對(duì)我來(lái)說(shuō),那是2008年一月。因?yàn)樵路輿](méi)記對(duì),我之后也沒(méi)寫(xiě)什么東西,但是我決定抓住機(jī)會(huì)現(xiàn)在開(kāi)始寫(xiě)點(diǎn)東西。
2008 – Sun 收購(gòu)案
在奧蘭多,一個(gè)全公司的會(huì)議上,我加入了MySQL AB,那正是Sun宣布被收購(gòu)的前兩天。星期三的早會(huì)上,我們還在想這是不是Mårten用來(lái)開(kāi)場(chǎng)的笑話(huà)。但是之后Jonathan Schwartz 出現(xiàn)在直播屏幕上。顯然這是真的。
在聽(tīng)完了幾小時(shí)Rich Green和其他Sun的主管們的講話(huà)之后,一個(gè)服務(wù)員的隊(duì)伍開(kāi)始走進(jìn)來(lái),手上端著 400+ 杯冰鎮(zhèn)的伏特加酒以慶祝這次收購(gòu)。 Kaj Arnö 開(kāi)場(chǎng)唱了一首瑞典著名的祝酒歌 Helan går :
幾周之前,Mårten Mickos 的一個(gè)好朋友問(wèn)我覺(jué)得 Mårten 人怎么樣。 我毫不猶豫地說(shuō),很顯然他是我工作過(guò)的最好的 CEO。但是,他做得更多。在芬蘭,我屬于說(shuō)瑞典語(yǔ)的小眾群體,雖然我很晚才加入 MySQL,但在這,我感覺(jué)就像在家一樣。那天后來(lái),Mårten 和我一起喝了一杯喜力,還告訴我“喜力”是Sun收購(gòu)案的項(xiàng)目代號(hào)。
即使人們不會(huì)說(shuō)瑞典語(yǔ),我覺(jué)得 Mårten 也對(duì)大家都一視同仁。就在上周,在Percona Live節(jié)目上,我和別人討論怎么處理社區(qū)日常的爛事時(shí)還說(shuō),我的建議是想想 Mårten 會(huì)怎么做。當(dāng)然,不是說(shuō)他是神,但他是個(gè)好領(lǐng)導(dǎo)。
那有一個(gè)卡拉OK吧,我唱了一首《日升之屋》,我根本找不找調(diào)了,所以 Richard Mason 幫我從聽(tīng)眾中解圍出來(lái)。他現(xiàn)在在Oracle,領(lǐng)導(dǎo)著世界范圍內(nèi)所有的MySQL和Linux銷(xiāo)售業(yè)務(wù)。
當(dāng)我從奧蘭多回到家時(shí),我兒子都6周大了。我把他抱在懷里,他還在睡覺(jué),稍微睜開(kāi)眼睛朝我笑了一下,然后又閉上了眼睛。這是他的第一個(gè)微笑。
回到我密切關(guān)注開(kāi)源商業(yè)模型誕生的那一陣子,我熟悉Sun因擁有 Java, OpenOffice,甚至那個(gè)時(shí)候 Solaris 還是開(kāi)源的. 那周后來(lái),我有機(jī)會(huì)見(jiàn)到了 James Gosling和Ian Murdock,他們分別是 Java 和 Debian 創(chuàng)始人。所以Sun應(yīng)該是醞釀著許多有意思的開(kāi)源項(xiàng)目的公司,這個(gè)消息讓我很興奮。幾個(gè)月后我參加了本季度財(cái)務(wù)情況的內(nèi)部電話(huà)會(huì)議,我才意識(shí)到90%的營(yíng)收來(lái)自于銷(xiāo)售 Sparc 服務(wù)器, 基本上所有的那些有意思的開(kāi)源項(xiàng)目都沒(méi)有營(yíng)收。那時(shí)候,我就已經(jīng)明白應(yīng)該不會(huì)有什么好結(jié)果…
我的工作是把 MySQL 賣(mài)給通訊公司。剛開(kāi)始,主要就是指設(shè)備廠(chǎng)商和 MySQL 集群。連續(xù)簽了兩個(gè)MySQL集群的合同,這些早在去年就開(kāi)始醞釀勢(shì)頭了,這也是 MySQL 歷史上最大的兩個(gè)合同,而且第二個(gè)是有史以來(lái)首個(gè)7位數(shù)的合同。我們?nèi)栽诓恍概?,簽了許多大大小小的 OEM 合同。
那可是我夢(mèng)寐以求的工作,公司發(fā)給我薪水,讓我到客戶(hù)跟前去,幫助他們從專(zhuān)有的Oracle實(shí)時(shí)應(yīng)用集群(有時(shí)是Sybase)遷移到開(kāi)源的 MySQL集群。那個(gè)時(shí)候大家已經(jīng)都在用開(kāi)源的Linux(當(dāng)時(shí)的Solaris在電話(huà)公司非常流行,而且那會(huì)它還是開(kāi)源的)JBoss和Tomcat,但那時(shí)的數(shù)據(jù)中心曾被大家普便認(rèn)為是最不可能使用開(kāi)源軟件的。因?yàn)槭荢UN公司的職員(這是多么諷刺的一件事),我們?cè)诳蛻?hù)中有著很高的可信度。當(dāng)時(shí)經(jīng)濟(jì)不景氣,為了盡可能節(jié)儉,我們的壓力非常大。當(dāng)時(shí)我所知道的節(jié)儉最大的一個(gè)項(xiàng)目是從每年花5千萬(wàn)歐元的Oracle實(shí)時(shí)應(yīng)用集群遷移到MySQL集群,節(jié)省了90%以上的錢(qián)。事實(shí)上他們省下了更多的錢(qián),因?yàn)镸ySql集群不需要SAN網(wǎng)絡(luò)存儲(chǔ),我想為此他們甚至又省下了5千萬(wàn)。
2009年伊始,這種勢(shì)頭進(jìn)一步增加。很多服務(wù)提供商和其他一些企業(yè)客戶(hù)通過(guò)遷移到MySQL集群開(kāi)始引進(jìn)雙供應(yīng)商策略。我們出售了一個(gè)三年內(nèi)將 50%甚至以上的數(shù)據(jù)中心遷移到MySQL集群的方案。僅在一年前MySql才剛完成自己的第一個(gè)七位數(shù)交易,而現(xiàn)在每一筆銷(xiāo)售都能達(dá)到這個(gè)數(shù)目。在向 MySql集群遷移方面,開(kāi)始我們敲定了數(shù)千臺(tái)服務(wù)器的遷移,而最終只有其中的一些遷移計(jì)劃將在Oracle收購(gòu)之前取消。這當(dāng)然改變了雙供應(yīng)商策略的故事……
2009 – Oracle 的收購(gòu)和 Monty Program
雖然我們的團(tuán)隊(duì)通過(guò)努力使自己的銷(xiāo)售業(yè)績(jī)翻了一番,但是SUN公司總體上在走下坡路,我們都面臨著被解雇的尷尬局面。所以我們所有人都得加倍努力來(lái)使公司遠(yuǎn)離破產(chǎn)的境地。
那時(shí)候SUN在拉斯維加斯為所有的技術(shù)領(lǐng)域的工程師們舉辦了一個(gè)大型的培訓(xùn)活動(dòng)。培訓(xùn)基本上圍繞Solaris和java展開(kāi),所以本質(zhì)上來(lái)說(shuō),這是一次無(wú)關(guān)緊要的、免費(fèi)的拉斯維加斯之行。我已經(jīng)預(yù)訂了酒店和航班(當(dāng)然,是公司掏的錢(qián)),由于以前從來(lái)都沒(méi)有去過(guò)拉斯維加斯,我難免有些興奮。
但是事情突然出現(xiàn)了變化,Nokia客戶(hù)團(tuán)隊(duì)的高層領(lǐng)導(dǎo)催促我去芬蘭參加一個(gè)非常重要的、為期一周的客戶(hù)會(huì)議。開(kāi)始我覺(jué)得像Nokia, Ericsson, Orange等等公司的這些人一直會(huì)有和首席技術(shù)官或者其他什么人的重要會(huì)議,而且他們會(huì)一直要求MySQL出人去參加因?yàn)镸ySQL基本上是SUN公司唯一拿得出手的產(chǎn)品。但是最后我們覺(jué)得參加會(huì)議會(huì)是一個(gè)非常英明的選擇,所以我最終還是沒(méi)有去拉斯維加斯,盡管已經(jīng)支付。從某種意義上來(lái)說(shuō),在芬蘭的一周非常的有意義,那些天我們非常忙碌。我從中看到了未來(lái)的前景,而且我們開(kāi)始討論另一個(gè)從Oracle到MySQL遷移項(xiàng)目。
之后有一個(gè)早晨,我們所有人都聚在一起參加另一個(gè)在Santa Clara大學(xué)舉辦的MySQL用戶(hù)會(huì)議,這是MySQL有史以來(lái)最大的一次會(huì)議。早上一個(gè)電話(huà)吵醒了睡夢(mèng)中的我,通知了SUN被Oracle收購(gòu)的事情。就在不久前,我們才消化了IBM不會(huì)收購(gòu)SUN的消息,而這次,我有點(diǎn)懵了……
從床上爬起來(lái),我的第一個(gè)想法就是我應(yīng)該去拉斯維加斯。事實(shí)上,我在芬蘭的那一周里,我們的很多會(huì)議都被取消了。關(guān)于雙供應(yīng)商策略的主張仿佛一夜之間丟了魂,而客戶(hù)們紛紛沒(méi)了興趣。
很快,我有了一個(gè)以首席運(yùn)營(yíng)官身份加入MariaDB團(tuán)隊(duì)的Monty計(jì)劃的機(jī)會(huì)。當(dāng)時(shí)這家公司才成立沒(méi)幾個(gè)月,所以團(tuán)隊(duì)建設(shè)、職責(zé)分配等等還不成熟。我不光要主持每周例行會(huì)議,還要啟動(dòng)程序來(lái)找回已被搶注的montyprogram.com的中文域名。
意想不到的是,為了獲得歐盟委員會(huì)對(duì)Oracle和Sun合并的批準(zhǔn),我們糾結(jié)了好長(zhǎng)時(shí)間。其間各種瑣事,不值一提。我只想說(shuō),Oracle的這種把困難最終轉(zhuǎn)變成為他們的勝利的能力讓我折服。在事實(shí)上完全處于下風(fēng)的Oracle在一到兩周內(nèi)聯(lián)系了他們?cè)跉W洲的500多個(gè)最大的用戶(hù)(這個(gè)數(shù)量只是我保守的估計(jì)),讓他們給歐盟委員會(huì)寫(xiě)信以支持Oracle的舉動(dòng)。這些用戶(hù)包括了總部設(shè)在九個(gè)時(shí)區(qū)之外的、Redwood Shores的副總裁們,他們紛紛在歐盟工作時(shí)間內(nèi)響應(yīng)號(hào)召。Oracle甚至得到了59名美國(guó)參議員的聯(lián)名信的支持(這一定花費(fèi)了大量的競(jìng)選經(jīng)費(fèi),我敢保證)。在一個(gè)非常短的時(shí)間內(nèi)做得這些簡(jiǎn)直就是一個(gè)壯舉,這是Sun或者Nokia這樣的公司根本不可能做到的。
我們以一個(gè)瑞士協(xié)會(huì)的名義創(chuàng)建了開(kāi)源的數(shù)據(jù)庫(kù)聯(lián)盟來(lái)把MariaDB作為一個(gè)納入基金管理的開(kāi)源項(xiàng)目。當(dāng)時(shí)還是一家小型咨詢(xún)公司的Percona派出了Tom Basil來(lái)敲定這筆對(duì)他們來(lái)說(shuō)是非常不平凡的投資。我們付出了大量的艱辛來(lái)談成這次投資,之后我們成為非常親密的好朋友。不幸的是,Monty Program的高層最后還是拒絕把MariaDB的資產(chǎn)融入?yún)f(xié)會(huì)。我花了兩個(gè)多月,超過(guò)兩萬(wàn)歐元的努力全部打了水漂。
但是付出總會(huì)有回報(bào)。當(dāng)時(shí)證明為什么基金對(duì)于一個(gè)項(xiàng)目來(lái)說(shuō)大有好處,我收集了一些由基金引導(dǎo)的成功的案例與一些供應(yīng)商自己支持的開(kāi)源項(xiàng)目案例對(duì)比的統(tǒng)計(jì)資料。雖然最后沒(méi)能成功說(shuō)服Monty Program高層,但我所收集的統(tǒng)計(jì)結(jié)果最后被廣泛引用。我還將他們分享給全球三大云計(jì)算中心之一的Rackspace的副總裁,我不知道這些統(tǒng)計(jì)結(jié)果對(duì)于OpenStack Foundation計(jì)劃的產(chǎn)生到底產(chǎn)生了什么影響,但是由451 Group上周發(fā)布的一份調(diào)查結(jié)果證明確實(shí)產(chǎn)生了相當(dāng)?shù)淖饔谩?/p>
#p#
2010 年和 SkySQL
之前我一直是按小時(shí)拿工資的,后來(lái)我很快明白原來(lái)的Monty Program商業(yè)模式,即使在最好的情況下,也不能持久。通常那些要向MySQL遷移的客戶(hù)并不真正需要開(kāi)發(fā)人員,他們一般只需要顧問(wèn)或者工程師的支持,還可能甚至只需要一些策略性的建議。而那時(shí),Percona公司還沒(méi)有開(kāi)通他們的付費(fèi)業(yè)務(wù),他們?cè)跉W洲甚至還沒(méi)有像樣的力量。
當(dāng)我們的合資公司會(huì)議在伊斯坦布爾期間召開(kāi)的時(shí)候,SkySQL正式成立,而當(dāng)時(shí)我正在休陪產(chǎn)假。這五年以來(lái)我最美好的記憶是最后終于踏上 SkySQL團(tuán)隊(duì)歡迎我們的大巴的那一刻。我們花了一年多的時(shí)間努力來(lái)建立MariaDB和SkySQL,有將近50多的友善的好朋友來(lái)和我們一起打拼。那種充滿(mǎn)和諧和力量的氣氛我永遠(yuǎn)都不會(huì)忘記。當(dāng)時(shí)就像在觀看1989年人們從倒塌的柏林墻上蜂擁而過(guò)的場(chǎng)景一樣,我起了一身雞皮疙瘩。好吧,這多少有點(diǎn)肉麻,但卻是我真實(shí)的感受。
(這段視頻似乎是在會(huì)議室拍的,但是不知道為什么在那樣親密無(wú)間而又充滿(mǎn)力量的環(huán)境下沒(méi)人會(huì)主動(dòng)舉杯)
SkySQL的董事長(zhǎng)和首席執(zhí)行官都是撲克愛(ài)好者。凌晨5點(diǎn)的時(shí)候我和Ulf兩人我八他二地?cái)偡至舜驌淇怂A的錢(qián)。所以我成了第一個(gè)從SkySQL拿到報(bào)酬的人。
Olivier Beutels是第三個(gè)從SkySQL拿到報(bào)酬的人,只不過(guò)他所得到的是總統(tǒng)套房里長(zhǎng)著長(zhǎng)發(fā)的同伴,因?yàn)槲覜](méi)有一點(diǎn)興趣在那個(gè)時(shí)候去MP酒店。Ulf早上 9點(diǎn)起床去陳述SkySQL的政策,在他之后我不得不臨時(shí)以Monty Program首席運(yùn)營(yíng)官的身份去向MariaDB展示成立一個(gè)新的銷(xiāo)售團(tuán)隊(duì)的路線(xiàn)圖,因?yàn)槲业氖紫\(yùn)營(yíng)官繼任者碰到了交通阻塞無(wú)法按時(shí)到會(huì)。 伊斯坦布爾的交通糟糕的時(shí)候就是一坨狗屎,尤其是在你喝多了或者是睡過(guò)頭了的時(shí)候……4個(gè)月之后,我的頭腦中已經(jīng)有了兩張面孔合并的模樣(SkySQL和 Monty Program),但是Igor溫柔的糾正了我(譯者注:這句話(huà),額…Igor應(yīng)該是作者的剛出生的孩子吧)。
上周我被問(wèn)到很多次對(duì)于Monty Program和SkySQL合并的看法。這是一個(gè)自然的結(jié)果。Monty致力于一個(gè)五年的計(jì)劃,現(xiàn)在我們已經(jīng)進(jìn)入了第四年。一直以來(lái),SkySql提供了MP的大多數(shù)收入,雙方的董事會(huì)主要受同一個(gè)人的控制而且MP的高官們甚至持有SkySQL的股票。所以這對(duì)我來(lái)說(shuō),根本就不算什么新聞。
我想沒(méi)人會(huì)問(wèn)我對(duì)于MariaDB基金會(huì)的想法,但是我還是想說(shuō)。十一月的這次小型的基金會(huì)通告——甚至在它真正意義上存在之前——讓 MariaDB更堅(jiān)定了收購(gòu)的決心。我真替MariaDB的開(kāi)發(fā)人員感到高興,而讓我郁悶的是以前他們?cè)诋a(chǎn)品上做了大量了不起的工作卻并未能成功實(shí)施他們的“走向市場(chǎng)”的策略,這回所有的工作都將真正圍繞人們的服務(wù)器展開(kāi)。
一個(gè)基金會(huì)的成立當(dāng)然要經(jīng)過(guò)不斷協(xié)商甚至是妥協(xié)。SkySQL仍然持有對(duì)MariaDB這個(gè)商標(biāo)的所有權(quán),但是這個(gè)基金又不得不取得 mariadb.org域名的所有權(quán)。我并不擅長(zhǎng)于談判、妥協(xié),但基金有總比沒(méi)有的好(就像451的統(tǒng)計(jì)數(shù)據(jù)顯示的一樣)。要知道,顯然這個(gè)基金會(huì)和 Linux 基金會(huì)或者OpenStack的基金會(huì)沒(méi)有可比性,但是這并不是我們的創(chuàng)造,之前Wordpress和Ubuntu的基金會(huì)是由同一個(gè)合作商來(lái)創(chuàng)建的,這和我們這個(gè)基金會(huì)是非常類(lèi)似的。
對(duì)于MariaDB基金會(huì),我的預(yù)測(cè)是,它會(huì)和Ubuntu基金會(huì)非常相似。它雖然不是MySQL的唯一的、甚至主導(dǎo)的的變種,但是它可以非常好地培養(yǎng)自己的充滿(mǎn)活力的社區(qū)(Ubuntu基金也只是RedHat基金會(huì)的一個(gè)變種,它現(xiàn)在已經(jīng)成長(zhǎng)壯大,充滿(mǎn)活力)。上周我見(jiàn)過(guò)了 AccelerationDB公司,該公司圍繞MariaDB做了大量的投注性的策略調(diào)整而且也給基金會(huì)融入了很多資金,它將極有可能在MariaDB成長(zhǎng)的強(qiáng)勁勢(shì)頭中獲益匪淺。
我對(duì)Monty非常感謝,為了我去過(guò)5年所做的所有事情。作為COO,我不得不去見(jiàn)很多Mysql社區(qū)中很多重要的人并且成為朋友,從Tom Basill 到Mark Callaghan.我甚至和Neelie Kroes 見(jiàn)了面并且和Thomas Vinje 和Edward Screven 一起撒過(guò)尿(so humor).
我也非常尊敬你,因?yàn)槟阕詈髣?chuàng)建了MariaDB,就像你平時(shí)說(shuō)的那樣。并且相反的不會(huì)向壓力投降。在我在Monty Program 的得失這個(gè)問(wèn)題上Same是對(duì)的,我只這兒有太多壓力,但是你有力地捍衛(wèi)了你的承諾,那是你在論述商業(yè)模式中說(shuō)的,所有員工都見(jiàn)證了的。對(duì)我來(lái)說(shuō) MariaDB 和Monty Program 永遠(yuǎn)不是關(guān)于錢(qián)的問(wèn)題,直到今天我對(duì)我認(rèn)定的東西有什么價(jià)值還是沒(méi)有想法,但是我尊重你因?yàn)槟愫葱l(wèi)了自己的原則。
還好,我基本上是滿(mǎn)意的,畢竟我擁有了SkySQL的股票,對(duì)我來(lái)說(shuō),已經(jīng)是個(gè)不錯(cuò)的結(jié)果了,基金會(huì)與SkySQL的合并計(jì)劃終于宣布,我又將迎來(lái)新的挑戰(zhàn)。
這些年來(lái),每個(gè)人或多或少有一些壓力,我和其它的MYSQL老人一樣打算離開(kāi)甲骨文,Giuseppe 和 Domas發(fā)表文章稱(chēng),甲骨文是一個(gè)偉大的公司,沒(méi)人想著離開(kāi),幾個(gè)月后,他們都辭職了。在一次MYSQL會(huì)議上,一個(gè)來(lái)自MYSQL技術(shù)支持團(tuán)隊(duì)的成員對(duì)Bryan Alsdorf高喊“叛徒”,真是傷感情,但也許是個(gè)玩笑。不過(guò)僅僅幾周以后,這個(gè)工程師就從甲骨文辭職,加入了一個(gè)大型社交網(wǎng)絡(luò)公司的DBA團(tuán)隊(duì)。
當(dāng)然,我從不認(rèn)為甲骨文會(huì)搞死MYSQL,之所以這么說(shuō),因?yàn)槲抑啦还苁腔谏虡I(yè)目的還是其它的,甲骨文都沒(méi)有理由這么做。在MYSQL遷移工作停止的同一天,甲骨文正式宣布他們沒(méi)有任何理由要搞死MYSQL,我將我以前做的關(guān)于MYSQL集群以及其它所有MYSQL工作都交接給了Tomas Ulin,我相信他們會(huì)做的更好。
Volcano
在這5年里,我們克服了種種團(tuán)難。也許正是這種患難與共才讓我們的友誼如此持久和堅(jiān)固。
這可不是什么收購(gòu)戲劇或者社區(qū)的戲劇,2010年因?yàn)镋yjafjallajokull火山的爆發(fā),參加完在舊金山舉行的MySQL會(huì)議之后,所有飛往歐洲去的航班全部被取消了,所有歐洲里的人都困那兒了。
當(dāng)時(shí)其中我們中的幾個(gè)還有懷孕的妻子在歐洲的家里。回到家六周之后,我的女兒出生了,她也非常熱情。我們幾個(gè)把剛出生的孩子組成了“火山嬰兒俱樂(lè)部”。
一個(gè)星期后,經(jīng)過(guò)Mexico和Madrid我回到家,Spain是我第一個(gè)看到非常干凈天空的國(guó)家,那會(huì)我就想明白一點(diǎn),踏上一塊合適的土地是非常重要的一件事。在Mexico待了13個(gè)小時(shí)我才發(fā)現(xiàn)在這里我壓根就不需要鑒證就可以坐地鐵去任一個(gè)集市。你永遠(yuǎn)都不會(huì)知道MySQL會(huì)帶你去哪兒。
2011年- MepSQL,Drizzle, 諾基亞 和 Galera
在我放棄Monty項(xiàng)目后,我還有幾個(gè)月的假期. 我曾一度對(duì)藝術(shù)持續(xù)集成狀態(tài)和克里斯蒂安·尼爾森所構(gòu)建的MariaDB的構(gòu)建系統(tǒng)感到好奇,并且試著嘗試它. 第一步,我按照要求用buildbot模塊運(yùn)行AWS EC2實(shí)例. (MariaDB 一直使用預(yù)置的硬件).
從那時(shí)我一直想達(dá)到一種可以使用相通的腳本來(lái)構(gòu)建兩個(gè)普通的MySQL,Percona 服務(wù)器、MariaDB和其它任何一種MySQL分支的狀態(tài). 一個(gè)對(duì)于所有MySQL分支的統(tǒng)一構(gòu)建系統(tǒng)!
事實(shí)上,這并有沒(méi)想象中的那么簡(jiǎn)單, 事實(shí)證明,尤其是DEB腳本與給定名稱(chēng)的項(xiàng)目聯(lián)系起來(lái)非常困難,并且這樣還會(huì)產(chǎn)生大量的參數(shù)化工作. 唯一能從這個(gè)項(xiàng)目解脫出來(lái)的方式就是打包和發(fā)布Facebook分支的MySQL.
當(dāng)我發(fā)現(xiàn)MariaDB和這個(gè)開(kāi)源的數(shù)據(jù)庫(kù)聯(lián)盟并沒(méi)有按我所設(shè)想的那樣成為一個(gè)廣泛的、統(tǒng)一的項(xiàng)目的時(shí)候,我開(kāi)始致力于為我自己找到一個(gè)中立的空間來(lái)繼續(xù)為所有的MySQL分支做更多的工作。我可不想把我的工作只提交給“MariaDB”或者只提交給“MySQL”,所以我給這個(gè)中立的,非供應(yīng)商的區(qū)域起名為“mepsql”,這是由“websql”的倒置過(guò)來(lái)得到的。
就這樣我創(chuàng)建了我自己的MySQL分支,并對(duì)Stephen O’Grady解釋的關(guān)于這種MySQl分支的”Cambrian explosion”現(xiàn)象在博客里面發(fā)表了我自己的看法。后來(lái)Drizzle發(fā)布了一個(gè)MySQl的一個(gè)GA版本,于是我覺(jué)得MySQl的分支太多了而我的這個(gè)分支顯得那么的不夠嚴(yán)肅,所以為了不產(chǎn)生一些不必要的噪聲,我默默地退出了MepSQL。我想給所有的Drizzle團(tuán)隊(duì)的成員一次公平的機(jī)會(huì)。但是”High Performance MySQL”這本書(shū)的第三版還是簡(jiǎn)要地提到了MepSQL。這讓Nokia的那些DBA們非常自豪,因?yàn)樗麄儼l(fā)現(xiàn)自己原來(lái)在和一個(gè)很有名的人共事:-)
我在MepSQL上所下的功夫在Nokia面試的時(shí)候派上了大用場(chǎng),面試官們問(wèn)了一些bash shell的操作和一些EC2的知識(shí),所以在那次面試中我表現(xiàn)得非常搶眼。
Nokia之前已經(jīng)和兩個(gè)MySQl的供應(yīng)商合作過(guò),所以他們?yōu)槲姨峁┝艘粔K“中立的領(lǐng)土”。他們并不關(guān)心我對(duì)于MySQL的想法,因?yàn)槲也辉俸瓦@些你爭(zhēng)我斗的不同的MySQL分支有所關(guān)聯(lián),所以總有一天所有反對(duì)MySQl的聲音都會(huì)消失。而我的博客,還是跟以前的內(nèi)容一致。事實(shí)上我只見(jiàn)過(guò)三個(gè)踩我博客的人。也許現(xiàn)在大家的看法都要趨向一致,沒(méi)人再反對(duì)了?
我加入Nokia之后雖然它并沒(méi)有被收購(gòu),但確實(shí)發(fā)生了一次非常大的機(jī)構(gòu)調(diào)整。在我和Stephen Elop之間我還有五個(gè)經(jīng)理,他們中的三個(gè)都離職了,這讓我們的團(tuán)隊(duì)出現(xiàn)了非常大的空缺。接下來(lái)的六個(gè)月里我們無(wú)事可干。我并不想怎樣刻意地夸獎(jiǎng) Drizzle,但我確實(shí)要感謝它讓我有了更多更加成熟的想法。我把我的個(gè)人筆記本帶到了辦公室并在上班的時(shí)間里深入地學(xué)習(xí)和研究了Google的開(kāi)源的 JavaScript引擎V8,并對(duì)HTTP JSON API有了更加深刻的理解。同時(shí)我還作為GSOC的指導(dǎo)老師帶了一個(gè)非常有前途的的學(xué)生,如果你要找一個(gè)不錯(cuò)的黑客,就聯(lián)系我吧。
我是一個(gè)數(shù)據(jù)庫(kù)顧問(wèn),所以之前我從來(lái)都沒(méi)有像那段時(shí)間一樣寫(xiě)過(guò)那么多的C++代碼。另外我還認(rèn)真學(xué)習(xí)了MongoDb和Couchbase的JSON查詢(xún)語(yǔ)言并用來(lái)作為Drizzle的JSON API原型。這對(duì)我的下一份工作還多少有點(diǎn)用處……
Nokia聘用我是為了解決MySQL高可用性和數(shù)據(jù)備份與恢復(fù)的問(wèn)題。在評(píng)估了例如Pacemaker等設(shè)備一周之后,我堅(jiān)信了這樣一點(diǎn):基于故障轉(zhuǎn)移的系統(tǒng)永遠(yuǎn)都不可靠。(今天我要澄清的是,采用獨(dú)立的軟件來(lái)處理復(fù)制和故障轉(zhuǎn)移這是設(shè)計(jì)上的不完整。比如說(shuō)MySQL的故障轉(zhuǎn)移并不在內(nèi)部進(jìn)行,而是采用了NDB的協(xié)議,這也一直為人詬病。雖然我個(gè)人沒(méi)有MongoDB備份的經(jīng)驗(yàn),但我相信它也是采用同樣的故障轉(zhuǎn)移機(jī)制。)
我是怎樣發(fā)現(xiàn)Galera系統(tǒng)的呢?讀了Amazon Dynamo協(xié)議之后我大受啟發(fā),在這個(gè)協(xié)議里,節(jié)點(diǎn)的故障不會(huì)產(chǎn)生任何影響,雖然在一個(gè)關(guān)系數(shù)據(jù)庫(kù)里面這是不可能的,但Galera系統(tǒng)至少為我們提供了這樣一些相似的屬性。
在過(guò)去的5年里,我做了很多非常有意思的事,但就純技術(shù)而言,我相信支持和幫助Galera系統(tǒng)獲得了主流的采用是我為MySQL做的重大的技術(shù)突破之一。當(dāng)然,由于開(kāi)發(fā)人員都是芬蘭的,這使得他們成為了另一個(gè)和我關(guān)系特別密切的團(tuán)隊(duì)。
#p#
Percona和MySQL大會(huì)
除了幫助SkySQL開(kāi)張,幫助一些其它的企業(yè)家開(kāi)張也很不錯(cuò)。我所做的都是些小事,他們向我尋求建議時(shí)我會(huì)和他們分享我的想法,比如安排一兩場(chǎng)客戶(hù)演示會(huì)、在我們的博客里提及某人或者安排一場(chǎng)招聘會(huì)或合作洽談會(huì)。
在這方面我和Percona關(guān)系不大。他們已經(jīng)成長(zhǎng)起來(lái)了,雇用了很多人才,可我和他們沒(méi)有什么關(guān)系。非常好笑的是,我不止一次被懷疑是一位 “Percona人”。我想,這是因?yàn)槲以谧龈鞣N我認(rèn)為對(duì)整個(gè)社區(qū)都有益的各種事情時(shí),我的動(dòng)機(jī)通常和Percona的商業(yè)動(dòng)機(jī)不謀而合。
Percona的確在一開(kāi)始就認(rèn)識(shí)到了, 他們支持對(duì)整個(gè)MySQL生態(tài)系統(tǒng)有促進(jìn)作用公司,包括他們所謂的競(jìng)爭(zhēng)性公司SkySQL和Oracle,因?yàn)樗麄兛梢砸虼硕@益。對(duì)有的人來(lái)講,這跟他們的直覺(jué)正好相反,并會(huì)因此而感到迷惑不解。但實(shí)際上,這在商業(yè)上意義非凡:平均來(lái)講,Percona的成長(zhǎng)速度比市場(chǎng)的成長(zhǎng)速度要快,所以,對(duì)市場(chǎng)中的其它供應(yīng)商的成長(zhǎng)給予支持是有道理的。Baron 甚至在博客中公開(kāi)地說(shuō),他認(rèn)為SkySQL在歐洲干得不錯(cuò),這非常好。因?yàn)镻ercona在歐洲很少露頭。幾年后,Percona已經(jīng)能夠在技術(shù)團(tuán)隊(duì)和銷(xiāo)售團(tuán)隊(duì)方面進(jìn)行擴(kuò)充了?,F(xiàn)在MySQL的市場(chǎng)已經(jīng)成長(zhǎng)起來(lái)了而且仍然還在不斷正在,他們利用了這中情況。要是沒(méi)有SkySQL和MariaDB,誰(shuí)知道那些客戶(hù)現(xiàn)在會(huì)在哪里?他們現(xiàn)在用的可能會(huì)使PostgreSQL或者甚至是SQL Server。(當(dāng)人們對(duì)MySQL的未來(lái)有所懷疑時(shí),絕大多數(shù)都會(huì)選用這兩個(gè)產(chǎn)品。)
一直以來(lái),Percona的成長(zhǎng)都令人歡欣鼓舞,因?yàn)檫@正好證實(shí)了我所信奉的兩個(gè)原則。
頭一個(gè)就是我們從其它開(kāi)源生態(tài)系統(tǒng)中了解到的規(guī)律,就是“更加開(kāi)放”的可選方案通常最后都會(huì)勝出。例如Red Hat同Suse或者OpenStack和Eucalyptus。 關(guān)于這個(gè)現(xiàn)象我最近單獨(dú)寫(xiě)了一篇文章。MySQL AB可能是對(duì)這個(gè)規(guī)律形成挑戰(zhàn)的最重要的一個(gè)公司,Percona的勝利總體上對(duì)開(kāi)源來(lái)說(shuō)非常重要。
更重要的是,Percona作為更加開(kāi)放的公司取得的勝利也為別的選擇稱(chēng)為更加開(kāi)放而不是封閉的公司打造出了一個(gè)市場(chǎng)氛圍。當(dāng)我同 Codership一起銷(xiāo)售Galera時(shí)這一點(diǎn)非常明顯。在集群領(lǐng)域中,我們有半打的創(chuàng)業(yè)公司采用了MySQL HA解決方案進(jìn)入的市場(chǎng):Schooner, GenieDB, ScaleDB, Clustrix, Xeround。。。其中每個(gè)公司都擁有數(shù)千萬(wàn)的VC投資。其中一家公司甚至OEM了Galera,所以它從技術(shù)上講是同一種解決方案,要說(shuō)區(qū)別只要一點(diǎn),他們?cè)嚵碎]源的解決方案。這個(gè)市場(chǎng)反而被來(lái)自芬蘭的4個(gè)身無(wú)分文的家伙占領(lǐng)了。他們是開(kāi)源的,而且他們同Percona的合作關(guān)系意義深遠(yuǎn) —— Vadim的第一篇博客就象來(lái)自教皇的祝福!我愿意認(rèn)為T(mén)okutek將他們的產(chǎn)品開(kāi)源后最終也會(huì)取得同樣的成功。Vadim已經(jīng)首發(fā)了用Tokutek 和Percona服務(wù)器編譯的alpha版的產(chǎn)品。
另外的一個(gè)原則是我父母教給我讓我信奉的: 能力(或者是“教育”,常話(huà)都是這么說(shuō)的)是資本的一種形式。當(dāng)我審視Percona的成功并將它和同一領(lǐng)域中的供應(yīng)商進(jìn)行比較時(shí),可以很保險(xiǎn)地說(shuō),如果要我在能力和1千萬(wàn)的VC投資兩者間做出選擇的話(huà),我寧愿選擇能力。Peter、Vadim 還有Baron,你們干得好?。ㄔ?huà)雖如此,也要祝Baron好運(yùn),希望這次投資還能夠支持他繼續(xù)進(jìn)行下一次的風(fēng)險(xiǎn)投資?。?/p>
因?yàn)橐黄鹋Ρ3諱ySQL大會(huì)繼續(xù)活躍,最后我和PeterPeter, Vadim以及Baron混得相當(dāng)熟I了。話(huà)說(shuō)這已經(jīng)是2009年的事了,遠(yuǎn)在監(jiān)管機(jī)構(gòu)審批通過(guò)這次收購(gòu)之前。Oracle內(nèi)部的“告密者”同我以及 Monty計(jì)劃的其他參與者進(jìn)行了接觸,告訴我們Oracle已無(wú)意繼續(xù)舉行2010年的大會(huì)了。我們把這個(gè)消息傳達(dá)給了 O’Reilly,O’Reilly作出了相反的決定,他們將繼續(xù)單獨(dú)舉辦大會(huì)。Oracle經(jīng)過(guò)兩年的猶豫不前,最終在2010和2011兩年都沒(méi)有參加大會(huì)。
Oracle不再向他們的MySQL用戶(hù)推廣MySQL大會(huì)了,而那時(shí)Percona和SkySQL的力量還相當(dāng)小,與會(huì)者因此變少了,最終 O’Reilly不得不直面再這么繼續(xù)下去可不是個(gè)事了這個(gè)事實(shí)。在2009年,Percona被Sun/MySQL排斥到大會(huì)之外了,這反而正好促使 Percona開(kāi)始組織他們自己的Parcona現(xiàn)場(chǎng)大會(huì)。到2012年,他們已經(jīng)有了足夠的信心,感覺(jué)他們自己可以將大會(huì)從O’Reilly手中接管過(guò)來(lái)了。話(huà)說(shuō)不利可能最終會(huì)變成有利,這正好就是個(gè)例證。
Percona成為了大會(huì)最優(yōu)秀的主辦方。 他們竭力使大會(huì)成為一個(gè)對(duì)所有人都開(kāi)放的兼收并蓄的大會(huì)。特別是在2012年,Oracle起訴了Google并企圖消滅MySQL,許多人給 Percona發(fā)來(lái)電子郵件說(shuō)Oracle在作惡而且還有其它一些理由,請(qǐng)求他們不要邀請(qǐng)Oracle參加大會(huì)了。Baron對(duì)這些請(qǐng)求回復(fù)到(我在私人郵件中看到過(guò)),他們的會(huì)議將歡迎所有人參加,因?yàn)樗麄冏约褐辣慌懦獾淖涛叮运麄兘^不會(huì)排斥任何人。2013年,Oracle對(duì)邀請(qǐng)做出了回應(yīng),而且他們?cè)诖髸?huì)上的演講頗受歡迎。那兩年的大會(huì)也對(duì)Percona的競(jìng)爭(zhēng)對(duì)手開(kāi)放,甚至還對(duì)抱有個(gè)人恩怨的人開(kāi)放,這些人知道他們到底是為了什么,曾經(jīng)時(shí)不時(shí)試圖對(duì)大會(huì)進(jìn)行暗中破壞或抵制。甚至Percona還為免費(fèi)的SkySQL日進(jìn)行宣傳,而SkySQL日的舉辦時(shí)間同主要的大會(huì)挨得很近。還得說(shuō),這在企業(yè)理念方面很有意義,但并不是每一個(gè)企業(yè)管理人員總能夠理解這一點(diǎn)。真的是非常了不起,我們能夠見(jiàn)證到Percona在這個(gè)領(lǐng)域中完全投將他們自己身于 100%的開(kāi)放性和包容性。
在這一點(diǎn)上我想我應(yīng)該說(shuō)一下,今年有件事做得有點(diǎn)過(guò)了。盡管我很欽佩Percona不計(jì)前嫌,能夠繼續(xù)回邀曾經(jīng)攻擊過(guò)他們的人,但我想,在與會(huì)者(甚至還包括非與會(huì)者)攻擊其他與會(huì)者方面,應(yīng)該規(guī)定一個(gè)度。我們絕不允許讓開(kāi)源大會(huì)變成一個(gè)讓與會(huì)者們因?yàn)樗麄兩踔炼嘉丛\面的人所發(fā)的輕率的推特消息或博客而不得不擔(dān)心可能會(huì)丟掉工作(甚至更糟)。好在Percona在過(guò)去的兩年中已經(jīng)顯示出了他們堅(jiān)持包容性和寬容性的決心,現(xiàn)在他們具有足夠強(qiáng)的地位,可以讓他們確保,大會(huì)將繼續(xù)保持成為一個(gè)他們竭力打造的具有包容性和建設(shè)性的大會(huì)。
獎(jiǎng)品
伴隨大會(huì)的還有一個(gè)傳統(tǒng)就是一年一度的MySQL獎(jiǎng)品。當(dāng)Oracle不再支持2010年的大會(huì)后我們繼承了這個(gè)傳統(tǒng)。Colin發(fā)現(xiàn)馬來(lái)西亞有個(gè)地方賣(mài)的酒杯很不錯(cuò),于是每年都從馬來(lái)西亞進(jìn)口一批這樣的酒杯。我在36小時(shí)內(nèi)在社區(qū)中安排了一個(gè)選拔獲勝者的評(píng)判小組。Shlomi是一位專(zhuān)題討論小組成員(他是前一年的獲勝者),他快馬加鞭,基于wordpress建成了一個(gè)投票系統(tǒng),該系統(tǒng)我們今天仍在使用。我走后,他們還會(huì)將這個(gè)傳統(tǒng)繼續(xù)下去。
我認(rèn)為,由于是通過(guò)一個(gè)獨(dú)立的評(píng)判小組來(lái)決定誰(shuí)來(lái)獲獎(jiǎng),所以這種獎(jiǎng)勵(lì)才有了良好的聲譽(yù)。獲獎(jiǎng)?wù)呖偸且驗(yàn)楂@得我們的獎(jiǎng)品而感到十分自豪,能夠讓人如此快樂(lè)的感覺(jué)妙極了。即使是那些再多次獲獎(jiǎng)的人也認(rèn)為獲獎(jiǎng)是件了不起的事情,因?yàn)樗麄冋f(shuō) —— 贏得這個(gè)獎(jiǎng)項(xiàng)可不同尋常。
我一直主張,評(píng)判小組可隨心所欲地根據(jù)他們心中的任何理由來(lái)獎(jiǎng)勵(lì)任何人。不過(guò)這里還有個(gè)例外,我成功說(shuō)服了我自己,不能讓我自己通過(guò)選票而獲勝。我的解釋是,一個(gè)人站在臺(tái)上然后自己頒發(fā)給自己獎(jiǎng)品的感覺(jué)太怪異了。但我有個(gè)小秘密:每次大會(huì)我都不是空手而歸!2010和2012兩年中,我們?cè)讵?jiǎng)品購(gòu)置方面都有點(diǎn)問(wèn)題,每年都多出了一個(gè)杯子。我當(dāng)然就把它們歸為己有了。所以,我終究還是獲了不少獎(jiǎng):
#p#
下一步
過(guò)去5年中一直都是以變革作為主題的。在2009年,Baron做了他著名的主題演講”MySQL has a community, but PostgreSQL is a community(MySQL具有一個(gè)社區(qū),但是PostgreSQL就是一個(gè)社區(qū))”。
從我的觀點(diǎn)看,這個(gè)就是一直以來(lái)導(dǎo)致所有問(wèn)題的最根本的原因。問(wèn)題并不在于MySQL被Oracle收購(gòu)了,而在于MySQL本身太容易受收購(gòu)的傷害了。(當(dāng)時(shí)在工程化的過(guò)程中以及性能方面的問(wèn)題也可以歸咎于相同的缺乏多樣性。)如果還有什么要說(shuō)的,我們應(yīng)該感謝Oracle,她在這場(chǎng)變革中擔(dān)當(dāng)了催化劑的作用。我想,現(xiàn)在我們可以很有把握地說(shuō)MySQL is a community了。
在MySQL大會(huì)未來(lái)中縈繞著的不確定性是真正需要解決的最后一件事。大約在去年的這個(gè)時(shí)候,我在第一屆Percona的世界性MySQL現(xiàn)場(chǎng)大會(huì)結(jié)束后回到了家中,當(dāng)時(shí)感覺(jué)甚至這個(gè)問(wèn)題也已經(jīng)解決了,大會(huì)又重新回到了可靠的、有能力的人的手中了。
因?yàn)镹okia那時(shí)仍在繼續(xù)裁員,雖然我的團(tuán)隊(duì)并未受到什么影響,但很自然地我也應(yīng)該四處找找看有沒(méi)有什么合適的機(jī)會(huì)。我決定,經(jīng)過(guò)這么多年專(zhuān)心去做對(duì)MySQL社區(qū)有益的事情之后,現(xiàn)在正好是我尋找一些做點(diǎn)什么才會(huì)對(duì)我自己有益的時(shí)候了。
我當(dāng)然同MySQL圈子里的多個(gè)不同的創(chuàng)業(yè)公司進(jìn)行了洽談,也拿到了一些相當(dāng)不錯(cuò)的offer。但是令我意想不到的是,有一個(gè)不請(qǐng)自到的offer 要比其它的都好。雖然有點(diǎn)奇怪,但我決定接受了這個(gè)offer,那就讓我順其自然吧。 我接受了來(lái)自10gen的offer,將回去做售前咨詢(xún)和銷(xiāo)售。。。只是這次是MongoDB。
上周的大會(huì)是我過(guò)去的這5年身在其中經(jīng)歷的所有事情的一個(gè)完美的高潮。我要再次同所有的朋友相聚,一起享受圣克拉拉的陽(yáng)光以及可能是史上最好的一屆大會(huì)。從整個(gè)歷史的角度看,會(huì)議的氣氛相當(dāng)好 —— 我想,他們中的每個(gè)人也都對(duì)歷史感到厭倦了,只想把那些煩擾拋到腦后。
周五SkySQL又安排了他們自己的”附加”日,我參加了他們的晚宴。由于Kaj、Patrick (Backman) 和Ulf不再來(lái)了,他們知道他們沒(méi)有了能夠?yàn)樗麄儺?dāng)時(shí)還不出名的祝酒歌唱序曲的人了。 (En liten fågel satt en gång… )(譯者注:瑞典語(yǔ),大意是,很久以前有一只小鳥(niǎo)。。。)于是,Max Mether就邀請(qǐng)我來(lái)領(lǐng)唱。在任何場(chǎng)合下我都從來(lái)沒(méi)有干過(guò)這樣的事 —— 序曲通常都是由合唱團(tuán)的首席男高音來(lái)唱的,否則也應(yīng)該又party里資格最高者來(lái)唱。雖然事不大,但對(duì)我來(lái)講,感覺(jué)是莫大的榮幸,心中對(duì)此感慨萬(wàn)千。
就這樣,我5年多的MySQL生涯就象剛開(kāi)始時(shí)一樣,伴著Helan går的歌聲,結(jié)束了。
(注意這塊留白,馬上就會(huì)奉上我唱歌的視頻。)
按計(jì)劃我是要在SkySQL日講話(huà)的,但是我把機(jī)會(huì)讓給了Seppo,他講了有關(guān)MariaDB Galera集群方面的話(huà)題。他們?yōu)榱烁兄x還準(zhǔn)備了一份禮物,禮物的上面還刻有我的名字,所以,我要把我得到的這個(gè)啤酒杯帶回家,放到下圖中右面的那個(gè)位置。
在奧蘭多參加MySQL AB新員工培訓(xùn)課程的第一天,我在誰(shuí)懂的語(yǔ)言(譯者注:應(yīng)該指的是人類(lèi)的自然語(yǔ)言)最多的競(jìng)賽中“獲勝”(我懂4種語(yǔ)言)。實(shí)際上,我和Pasi Vuorela(他現(xiàn)在在SkySQL工作)打成了平手,但他把作為獎(jiǎng)品的啤酒杯(左邊那個(gè))讓給了我。我那時(shí)對(duì)在誰(shuí)懂的編程語(yǔ)言最多的競(jìng)賽中打成平手后如何再取勝做好了充分的心理準(zhǔn)備。。。
有一段時(shí)間我停用了這個(gè)杯子以及我所得到的其它帶有Sun公司標(biāo)志的物件。對(duì)我來(lái)講,Oracle的收購(gòu)可不僅僅是換個(gè)東家那么簡(jiǎn)單,其實(shí)收購(gòu)意味著MySQL和Sun在整個(gè)開(kāi)源運(yùn)動(dòng)中徹底的敗北。隨后企業(yè)用戶(hù)就會(huì)改弦易轍,在他們的雙重供應(yīng)商策略中皈依Microsoft SQL。(那時(shí)EnterpriseDB還未出現(xiàn)在歐洲)。看到這個(gè)杯子就令我惡心。但那種情況并沒(méi)有真的發(fā)生,人們還在使用MySQL以及其它一些開(kāi)源數(shù)據(jù)庫(kù),所以,我又重新用起了我的這個(gè)啤酒杯。
兩個(gè)啤酒杯,一個(gè)半空,一個(gè)半滿(mǎn)。干杯!
英文原文:5 years of MySQL