盡管Oracle收購Sun一案最終得到歐盟的批準,這一收購案終于塵埃落定,但是,人們對開源數(shù)據(jù)庫MySQL命運的擔心并沒有結(jié)束。
2010年1月21日,歐盟終于同意Oracle收購Sun,這場已經(jīng)拖了9個多月之久的收購案塵埃落定。歐盟之所以遲遲沒有批準Oracle, MySQL是很重要的原因,歐盟認為Oracle收購MySQL會妨礙數(shù)據(jù)庫市場的公平競爭。如今,Oracle收購Sun的工作終于可以進入實質(zhì)操作階段,如果在瀏覽器中輸入“sun.com”,Oracle的標識會在鏈接地址欄出現(xiàn); 如果訪問的是“mysql.com”,在網(wǎng)頁底部也可以看到Oracle的標識。只是今天在MySQL網(wǎng)站上已經(jīng)很難看到任何Sun的信息,盡管Sun先于2008年斥資10億美元收購了MySQL,然后Oracle才以74億美元收購Sun。
似乎轉(zhuǎn)眼之間曾經(jīng)熱鬧的聽證會、言語恫嚇和痛苦絕望都如過眼云煙,就像從來沒有發(fā)生過一樣。今天,數(shù)據(jù)庫管理員、IT經(jīng)理和小型網(wǎng)站運營商仍然照常工作或運營,他們所管理的MySQL一如既往地不斷響應(yīng)著前臺提交的各種數(shù)據(jù)庫查詢。
真的所有問題都煙消云散了嗎?由于今后Oracle會擁有MySQL的版權(quán),MySQL的未來依然是個未知數(shù):MySQL的未來究竟走向何方?依賴于它的眾多企業(yè)怎么辦?這些問題的答案取決于多個方面:MySQL在企業(yè)IT系統(tǒng)中扮演的角色、所用許可證的類型、想花費多少開支、想采購什么軟件以及打算將來與誰合作。讓情況更為復雜的是,MySQL是世界上最著名的開源軟件項目和公司之一,所以關(guān)于MySQL的任何討論實際上都涉及關(guān)于GNU公共許可證(GPL)等開源許可證的爭論。
Oracle做出保證
Oracle已經(jīng)在多種場合做出保證,它們會比Sun投入更多的精力來開發(fā)MySQL數(shù)據(jù)庫,至少在今后三年是如此。另外,MySQL將采用GPL許可方式。
首先,對MySQL的使用者來說有一個好消息,就是它不會很快退出市場。Oracle已在多種場合公開保證:它會投入比Sun更多的精力來開發(fā)這個數(shù)據(jù)庫,至少在今后三年是這樣; 社區(qū)版會繼續(xù)得到改進,該版本將采用GPL許可證來發(fā)布,所有源代碼都是免費的。
在近日于美國加利福尼亞州圣克拉拉召開的O玆eilly MySQL大會上,Oracle首席企業(yè)架構(gòu)師Edward Screven就傳達出簡單明確的信息:MySQL對Oracle來說很重要,希望以此贏得用戶們的芳心。Screven 說,MySQL擁有Oracle所沒有的一些特性。它小巧、容易安裝,還便于開發(fā)人員上手。他認為MySQL開源數(shù)據(jù)庫讓Oracle得以鎖定Oracle數(shù)據(jù)庫本身所無法企及的市場,“MySQL取得成功,對于我們公司來說很重要。為了取得成功,我們必須繼續(xù)給MySQL投入。”
Screven表示,Oracle將MySQL小組與InnoDB小組(Oracle在2005年收購了芬蘭公司Innobase,此舉讓很多人預(yù)測這家公司最終會收購MySQL)整合起來,已經(jīng)開始獲得了一些重大的性能改進—MySQL數(shù)據(jù)庫處理幾百個并發(fā)連接的速度最快提升了35%。即將推出的新版本MySQL之所以運行速度有了改進,要得益于其使用了粒度更細的行鎖定機制,并在一定程度上避免了爭用表的問題。
Screven強調(diào),MySQL將負責分析SQL查詢、與外部客戶端集成,而把存儲數(shù)據(jù)的任務(wù)交給有著不同特性的幾個不同引擎。 InnoDB引擎提供事務(wù)處理機制(一旦出現(xiàn)硬件故障,為了確保數(shù)據(jù)一致性需要這種機制)。他說,還有幾處計劃的改進將會融入到社區(qū)版和商用版當中,像熱備份這些功能只會出現(xiàn)在商用版中(熱備份過去一向作為獨立產(chǎn)品而出現(xiàn),但現(xiàn)在將融入到企業(yè)版MySQL中)。
“MySQL進入Oracle陣營后, Oracle在對待社區(qū)版和商用版的功能特性方面,與過去的MySQL或Sun公司采取的做法相比不會有太大變化?!盨creven說,“我預(yù)計核心功能會出現(xiàn)在社區(qū)版中。至于一些增值功能,比如監(jiān)測或備份,則會出現(xiàn)在企業(yè)版中。”
盡管Screven表示,Oracle肯定希望把MySQL作為一家公司來運營以獲得利潤,但他強調(diào),他和公司其他人都喜歡這一點:開源社區(qū)版便于人們創(chuàng)建項目。他說:“我們要是扼殺社區(qū)版將是一個錯誤,因為那么做只會影響MySQL的市場影響力?!?/p>
MySQL社區(qū)現(xiàn)在包括MySQL的好幾個分支版本,如由MySQL的前任員工Monty Widenius開發(fā)的MariaDB和正在開發(fā)中的Drizzle。兩者都在試用不同的數(shù)據(jù)存儲引擎及其他改進。Screven希望它們能有好運,但表示Oracle大力支持的新MySQL,會繼續(xù)致力于滿足商業(yè)客戶的需求。
要GPL,還是要商用許可?
人們擔心,Oracle會改變MySQL的授權(quán)許可方式,從而改變數(shù)據(jù)庫的競爭格局,最終影響數(shù)據(jù)庫市場的公平競爭。
類似Screven這樣的來自O(shè)racle公司各個層級的保證表明,普通的MySQL用戶暫時不需要考慮在今后幾年要不要放棄MySQL。如果對于使用的數(shù)據(jù)庫版本滿意,仍能夠繼續(xù)運行它。另外,也有證據(jù)表明,為便于用戶使用MySQL,Oracle可能計劃推出免編譯器的MySQL。
不過,這些保證并不足以讓每個人都吃下定心丸。顯然,Oracle也注意到了這一點。與Oracle收購開源數(shù)據(jù)庫Sleepycat.com后直接將其網(wǎng)站重定向到Oracle官網(wǎng)不同,對MySQL網(wǎng)站并沒有這么做。這肯定不能用Oracle的疏忽來解釋。Oracle的管理層應(yīng)該很清楚,這次合并給MySQL用戶到底帶來了多大的沖擊。如果直接把mysql.com重定向至oracle.com,只會讓那些在Sun被收購后憂心忡忡的人更加心煩意亂。
其實,作為一種產(chǎn)品,眾多企業(yè)和開發(fā)人員基本不擔心MySQL的未來,而是更擔心Oracle掌控該數(shù)據(jù)庫后會改變授權(quán)許可方式以及會給開源社區(qū)帶來什么樣的影響。
MySQL的早期創(chuàng)始人之一Monty Widenius是公開反對Sun與甲骨文合并的著名人士之一。他2009年離開Sun后創(chuàng)辦了Monty Program AB公司,并開發(fā)出了MariaDB—這是一種新版本的MySQL,這家公司的產(chǎn)品立足于MariaDB開源數(shù)據(jù)庫。Widenius曾游說歐盟委員會阻止這起合并案,他認為允許Oracle控制MySQL版權(quán)對于歐洲乃至整個社會來說不是好事。他給出的理由是,只有向不希望被GPL束縛的用戶提供商用許可證,像他的Monty Program AB這樣的公司才能夠生存下去。
之前的MySQL公司一直堅持自己擁有完整的版權(quán),其辦法是要求所有開發(fā)人員簽署將版權(quán)授予該公司的協(xié)議。這種權(quán)利意味著只有MySQL才能銷售商用軟件證,而不用GPL。用戶采用GPL許可的麻煩在于,GPL是一種讓人迷惑的許可方式,其細節(jié)非常復雜。有些人認為該許可證更適用于設(shè)備驅(qū)動程序以及用來定義連接的協(xié)議。
過去,MySQL的銷售人員曾抓住用戶對于GPL認識不清大做文章,竭力說服他們,讓他們選擇商用許可證,以避免將來可能出現(xiàn)代價高昂的法律糾紛。當然,購買商用許可證有助于為“嗷嗷待哺”的開發(fā)人員提供資金。事實證明,這是一種行之有效、有利可圖的戰(zhàn)術(shù)。
當然,也并不是所有人都對MySQL是否使用GPL授權(quán)非常擔心。比如,谷歌就是其中之一,盡管它們也部署了MySQL。谷歌開源項目經(jīng)理Chris DiBona說:“很多人從GPL當中讀到了他們希望應(yīng)該表明的條款。我們理解GPL,我們會按照它的既定方式來使用它?!?/p>
他解釋說,盡管GPL要求開發(fā)人員在發(fā)行軟件時包含源代碼,但谷歌發(fā)布的大多數(shù)是搜索結(jié)果,而不是軟件本身,所以該公司不需要發(fā)布它對軟件所做的任何更改—如果它真做了更改的話。另外,也有很多公司不加任何更改,就使用MySQL及其他GPL項目。
哥倫比亞大學的法學教授Eben Moglen過去幫助自由軟件之父Richard Stallman起草過GPL的各種版本,他說:“GPL正在設(shè)法變得簡單明了,用不了多久,騙別人GPL很嚇人從而強迫別人給自己付錢的做法就行不通了。”
Moglen過去在Oracle和MySQL都工作過,幫助這些公司認識GPL在商業(yè)模式中的作用。歐盟委員會就這起合并案進行爭辯時,Moglen是支持合并的,他說這兩家公司聯(lián)姻不會損害MySQL源代碼的開放性。他認為源代碼開放性是最重要的因素,也是GPL真正關(guān)注的。
而Stallman則持不同的態(tài)度,他與Monty Widenius等很多開源倡導人士一起反對這場并購,認為發(fā)布商用許可證的能力至關(guān)重要。他們在致歐盟委員會的信函中給出了反對的理由:“由于只有原來的版權(quán)擁有者才能銷售商用許可證,而任何新的分支版本都不能采用并行許可方法,因而其他衍生版本不容易獲得資源,以繼續(xù)開發(fā)相關(guān)產(chǎn)品。”
最終歐盟委員會沒有因這些反對意見而動搖立場,同意讓Oracle控制Sun和MySQL。
MySQL陣營
不同走向
在市場上已經(jīng)出現(xiàn)了幾種MySQL的衍生版本,包括正處在開發(fā)測試階段的Drizzle以及由MySQL的創(chuàng)始人之一Monty Widenius主持開發(fā)的MariaDB。
Monty Program并不是唯一一家對使用MySQL的公司提供支持服務(wù)的公司。另一群以前在MySQL工作的開發(fā)人員已開始開發(fā)Drizzle,目前,MySQL的這個分支版本還處在測試階段。數(shù)據(jù)中心管理公司Rackspace最近宣布從Drizzle聘請了幾名主要開發(fā)人員,這個決定有望讓該公司更快交付一款更為穩(wěn)定可靠的Drizzle版本。
目前看來,MySQL的生態(tài)系統(tǒng)可能會分化成幾個不同陣營。Widenius已經(jīng)放出口風:他希望他的分支版本接受社區(qū)補丁,并提供一個協(xié)作、試驗性的社區(qū)。MariaDB可能對有時間調(diào)整代碼以便最大限度地提升性能的鐵桿開發(fā)人員更有吸引力。新版本包括Maria、PBXT和Xtra,這三大存儲引擎是MySQL分析機制的核心部分。對于那些需要高性能以及處理ACID(原子性、一致性、獨立性和持久性)事務(wù)的開發(fā)人員,他們對于這些存儲引擎方面的細節(jié)會更有興趣。而這些細節(jié)基本上隱藏在SQL分析器后面,所以大多數(shù)用戶會覺得,這些引擎與Oracle發(fā)布的MySQL版本里的引擎一樣。
Widenius認為,GPL對于將MySQL與其軟件一起發(fā)布的所有開發(fā)項目都有約束力,即使這兩部分是獨立運行的亦然。而MariaDB版本或Drizzle版本也許幫不了他們,除非他們打算發(fā)布全部代碼。
Widenius說:“我認為,GPL并不影響基于TCP/IP的應(yīng)用軟件。不過,如果應(yīng)用軟件與MySQL服務(wù)器一起發(fā)布,或要求MySQL服務(wù)器正常工作,那么MySQL中的GPL確實會影響該應(yīng)用軟件。這是因為整個系統(tǒng)是MySQL派生出來的,即使有些部分不是這樣。”
但其他人并不認同,有些公司可能會繼續(xù)需要Oracle的商用許可證,除非它準備在法庭上就GPL的細節(jié)一決高下。有些公司建議,Oracle可將數(shù)據(jù)庫與Linux操作系統(tǒng)結(jié)合起來,這樣就不會讓數(shù)據(jù)庫用戶受到GPL的束縛。
至于Oracle,它幾乎肯定會發(fā)揮優(yōu)勢,竭力勸說MySQL的用戶不要讓重要數(shù)據(jù)離開用戶。而對于很多用戶而言,花幾千美元來購買MySQL商用許可證,總比雇用律師來確定自己是否遵守GPL來得劃算,因此Oracle控制MySQL版權(quán)通過向用戶授予商用許可證也的確可能會將很多用戶留在身邊,更何況這家公司擁有一流的銷售團隊和完善的人員培訓機制。
不過,MySQL究竟能為Oracle帶來多少收益還未可知。雖然數(shù)量眾多的MySQL用戶開設(shè)的博客和其他基礎(chǔ)網(wǎng)站將內(nèi)容存儲在MySQL數(shù)據(jù)庫中,但這些版本很少能帶來真正的收入。未來Oracle會更拼命地榨取他們來收取費用嗎?也許Oracle會將它們的一部分視做值得培養(yǎng)的對象,鼓勵他們享用開源許可證,直到他們發(fā)展成為更龐大、更商業(yè)化的企業(yè)。
而對某些軟件公司而言,基本上沒什么選擇,對Oracle的銷售人員只能笑臉相迎。因為這些軟件公司基于MySQL開發(fā)軟件包,并把兩者作為一套集成工具來交付。如果他們想把MySQL與自己編寫的代碼捆綁起來—或者他們認為必須這么做,就得繼續(xù)購買商用許可證。
NoSQL能替代MySQL嗎?
市場上有許多小的“MySQL”,這些開源的、比較簡單、快速的數(shù)據(jù)庫統(tǒng)一稱為“NoSQL”。這些產(chǎn)品與早期的MySQL一樣,很有特點,但難免稚嫩。
當然,Oracle很聰明,認識到自己的要求得有個“度”,不然用戶會開始改寫代碼。比如說,Twitter已宣布大范圍嘗試改用Cassandra來開發(fā)基礎(chǔ)架構(gòu)。Cassandra是另一種開源項目,采用更加開放的Apache許可證。
Twitter的舉措也許純粹出于技術(shù)上的考慮:Cassandra是一種非常簡單、快速的數(shù)據(jù)庫,沒有很多比較復雜的保護措施,比如事務(wù)處理。Twitter這一舉措的意義在于,它可能為不想陷入許可困境的MySQL用戶指明一條更省事的道路。實際上,還有眾多像Cassandra這樣的項目,它們都常常用“NoSQL”這個流行詞來定義。不過,采用NoSQL是要付出代價的。
“NoSQL顯然有一席之地,但它不適合普通的開發(fā)人員,因為NoSQL在某些方面為你提升性能的同時,卻在其他很多方面降低了靈活性和兼容性?!盬idenius說,“它讓我想起了MySQL問世之前存在的眾多數(shù)據(jù)庫。MySQL開始流行后,這些數(shù)據(jù)庫先后退出了市場,原因是MySQL很容易使用,極容易與其他應(yīng)用軟件進行連接,這歸功于SQL接口?!?/p>
的確,今天的NoSQL數(shù)據(jù)庫讓人聯(lián)想到了MySQL昔日的境況。與Cassandra一樣,MySQL數(shù)據(jù)庫也是從一個很小的項目做起來的,它擯棄了最傳統(tǒng)的數(shù)據(jù)庫擁有的一些保護措施,因而提供了非??斓拇鎯π阅?。之后,MySQL逐漸添加了很多其他方面的功能,成為了一款成功的數(shù)據(jù)庫產(chǎn)品,能夠處理一些比較高端的事務(wù),所有這些工作原本都需要更多的工程師和更多的預(yù)算。
實際上,Widenius以及高度依賴MySQL的企業(yè)現(xiàn)在處境很微妙。如果MariaDB因潛在客戶想規(guī)避許可問題而失敗,留給他的將是一家倒閉公司,不過那可以證明他預(yù)測Oracle與Sun合并案會帶來不利影響是正確的;如果MariaDB生意興隆,他可能會享受這種成功帶來的喜悅,但他的預(yù)測肯定會受到更多人的懷疑。在一條道路上,他成為擊敗巨人歌利亞(Oracle)的大衛(wèi); 而在另一條道路上,他將被視做預(yù)言家卡珊德拉(希臘神話中的預(yù)言家,預(yù)言很準,但沒人信她)。不管怎樣,Widenius肯定會既是正確的也是錯誤的。
編輯點評
GPL或許會成為MySQL保護傘
人們對MySQL的未來擔心主要有兩個:一個是Oracle未來可能不給MySQL繼續(xù)投入,讓其自生自滅; 另一個是Oracle可能會改變MySQL的銷售策略。如果出現(xiàn)這兩種結(jié)果中的任何一種,最終都會導致數(shù)據(jù)庫市場競爭的減少,使得用戶利益受損。現(xiàn)在看來,短期內(nèi)MySQL不太可能落到這樣的命運。其中很重要的一個原因是MySQL的銷售將采用GPL授權(quán)。
在不久前舉辦的O'Reilly MySQL大會上,MySQL社區(qū)副總裁Kaj Arno公開表示,MySQL將繼續(xù)采用GPL授權(quán)。如果MySQL采用GPL,對MySQL會起到一定保護作用。
首先,眾所周知,GPL授權(quán)的核心是如果某產(chǎn)品是基于GPL授權(quán)的開源產(chǎn)品開發(fā),那么該產(chǎn)品也必須公開源碼,并采用GPL授權(quán)。由于GPL的這一規(guī)定,Oracle不能將MySQL變?yōu)殚]源產(chǎn)品銷售。
其次,如果Oracle停止對MySQL投入,只要市場存在對這類開源數(shù)據(jù)庫的需求,現(xiàn)在已經(jīng)存在的MySQL的衍生版,如Drizzle、MariaDB可能很快會頂替MySQL的位置,其他組織也可以根據(jù)GPL授權(quán)推出新類型的MySQL版本(如NoSQL)。這種局面肯定不會是Oracle愿意看到的,對于Oracle來說,與其培育一個新的競爭對手,顯然不如把這個競爭對手拉入自己的陣營。更何況短期內(nèi)放棄MySQL對Oracle而言還面臨著巨大的公關(guān)壓力。(文/鄒大斌)