1. 程式人生 > >甲骨文戰略主導下 MySQL 資料庫將走向何方

甲骨文戰略主導下 MySQL 資料庫將走向何方

導讀

2012年2月23日,甲骨文公司聯合上海愛可生資訊科技有限公司,於上海舉辦的MySQL創新技術大會上宣佈 MySQL 5.6企業版本的開發藍圖,並且MySQL官方網站提前一天公佈停止更新MySQL 5.1版本的計劃,以及會議現場嘉賓分享與問答交流的資訊,越來越使我們意識到MySQL資料庫產品,將會因甲骨文公司的市場戰略需要,而重新走向另外一 個MySQL使用者不太樂意看見的方向。

(一)   資訊梳理

(1).     甲骨文於2005年10月份收購InnoDB儲存引擎開發商芬蘭公司Innobase;

(2).     SUN於2008年1月份收購MySQL AB公司;

(3).     甲骨文

於2009年4月份收購SUN公司及其子公司的全部資產;

MySQL AB公司曾經希望能夠收購InnoDB儲存引擎開發商Innobase公司,並且一直有談判接觸,只是沒有談妥而已,MySQL AB公司與Innobase公司也是有簽署戰略合作協議。隨著開源MySQL資料庫產品對Oracle等商業資料庫產品的衝擊越來越大,尤其是 InnoDB儲存引擎完整優越地支援事務和細粒度的鎖,能解決大資料量儲存和高併發的訪問請求,而MySQL支援的其他儲存引擎並不能很好解決事務、細粒 度鎖等技術難題,使甲骨文公司感受到InnoDB儲存引擎帶來的威脅,只要控制MySQL資料庫產品的InnoDB儲存引擎,就等於掐斷MySQL資料庫 產品的競爭力,從而達到控制開源MySQL資料庫產品對Oracle資料庫產品的衝擊,這一招真是釜底抽薪,同時還可以在開源市場上提前佈局和分一杯羹。

自從甲骨文公司收購Innobase公司之後,甲骨文公司主席Charles Phillips 曾明確表示會支援開源資料庫產品的發展,但是InnoDB儲存引擎的研發與升級一直無進展,後還準備變更Innobase公司先前與MySQL AB公司簽署的合作協議,幸運的是合同還需要好幾年到期。

SUN收購MySQL AB公司,當時幾乎被所有人看好,甚至開源領域的人士認為開源產品的春天即將到來。對於我們MySQL開源資料庫產品的使用者與愛好者而言,認為SUN公 司擁有程式設計開發軟體、作業系統、硬體等,可以完美地整合成一套健全的解決方案,同時可以使生產線上的產品發揮最大優勢,對MySQL資料庫產品的改進與性 能提升、推廣等帶來極大的幫助。可惜世事難料,隨後美國發生次貸危機,把全球都帶入經濟危機中,SUN對MySQL AB公司的整合也出現一些裂痕,同時SUN公司也出現財務危機和產品市場佔有率下降嚴重,一場美好的夢就此破滅。

SUN公司高層把SUN出售給IBM最大的競爭對手之一甲骨文,通過收購SUN使甲骨文公司迅速實現幾個目標:

(1).     硬體研發團隊和研發技術,以及獲得大批SUN硬體產品消費的客戶資源;

(2).     大量的技術專利權;

(3).     企業解決方案與技術;

(4).     擁有程式設計師人數眾多,使用範圍廣泛的程式語言開發工具JAVA;

(5).     作業系統Solaris,而且Oracle資料庫產品跑在Solaris是效能最佳的,並且可以加速優化Oracle資料庫的效能;

(6).     能幫助甲骨文更好地服務現有的企業客戶,並且能給出一整套的解決方案資源;

(7).     可以完全控制開源MySQL資料庫產品的研發速度與發展勢頭,減少對其商業Oracle資料庫產品的衝擊,尤其是在中國等新型市場;

小道訊息得知甲骨文可能要收購SUN的時候,MySQL圈及技術圈就開始擔心其未來的命運走勢,不得不感謝歐盟對 MySQL資料庫產品的支援,以及MySQL AB公司創始人、前僱員和開源社群貢獻者,紛紛要求甲骨文公司作出承諾,才批准甲骨文收購SUN,反觀我們國內的技術人卻什麼也做不了,我們的國家好像跟 此事情無關一樣也是啥也不去做,頓時感受到作為某國公民的無奈。

各大新聞媒體、電視和網站報道,甲骨文公司正式宣佈74億美元收購SUN的訊息,MySQL資料庫使用者與技術圈內的朋 友,分析SUN收購MySQL AB公司1年多點,緊接著甲骨文又收購SUN(備註:雖然次貸危機爆發,也不至於SUN這樣大手筆10億美元收購MySQL AB公司之後,以及出現大的財務危機),總覺得SUN當初收購MySQL AB公司是甲骨文背後支援與指使的行為。

(二)   MySQL資料庫產品原本發展方向

眾所諸知MySQL資料庫產品之所發展迅猛,主要原因是:

(1).     MySQL AB公司對MySQL資料庫採用開放原始碼的策略;

(2).     允許遵守GPL協議前提下,可免費使用MySQL資料庫產品;

(3).     第三方公司可以開發自己的資料儲存引擎,並且掛載到MySQL中,帶動一批第三軟體開發公司的成長;

(4).     全世界的技術愛好者,都可以向MySQL AB公司提出合理的開發需求,並且參與MySQL資料庫產品的研發過程;

(5).     MySQL資料庫產品非常容易讓技術工作者上手,並且能滿足網際網路企業的業務需求;

(6).     MySQL資料庫產品的輕型、穩定、高效,並且能很好地執行在硬體條件交差的PC Server上,這四個熱點解決了網際網路企業的困境;

分析完上述促使MySQL資料庫能獲得企業和技術人員青睞的因素,隨著網際網路行業發展、企業業務發展與資料量的增長,以 及IT技術的革新,硬體處理能力的高速發展,企業業務的複雜度增加和堆資料處理速度的要求等綜合因數,會使我們發現MySQL資料庫的處理能力越來越捉襟 見肘,無法充分利用PC Server的硬體資源,為此MySQL資料庫的實現技術與演算法必須進行革新,尤其底層的實現程式碼必須考慮進行優化與重寫,為此MySQL技術研發團隊原 本應該要做的事情,大致羅列如下:

(1).     修復MySQL積累的BUG與缺陷;

(2).     繼續修改MySQL底層原始碼,正式支援SMP架構;

(3).     修改查詢優化器的演算法;

(4).     修改MySQL線上DDL操作實現的演算法;

(5).     增強MySQL資料庫的JOIN連線操作的演算法支援,比如增加HASH演算法、排序合併演算法;

(6).     增強MySQL複製的資料安全性與恢復執行緒併發的支援;

(7).     增加MySQL對多主複製的支援;

(8).     修改MySQL Cluster的NDB儲存引擎,更好地實現Cluster的業務模型與提高NDB儲存引擎的效能;

(9).     開發新的儲存引擎替代InnoDB儲存引擎,或基於MyISAM儲存引擎基礎上開發一個新的類似InnoDB的儲存引擎,以擺脫甲骨文公司的制約;

(10). ……………………..

MySQL技術研發團隊也確實做了很多事情,為此MySQL AB公司把MySQL資料庫的研發,分成幾個分支版本進行發展:

(1).     MySQL 6.0:主推NDB儲存引擎,提高分散式資料庫的效能與功能改進;

(2).     MySQL 5.1: 基於MySQL 5.0的基礎之上,繼續完善MySQL資料庫的功能,以及改善MySQL資料庫對SMP架構的支援特性等;

(3).     MySQL 5.5:重新改寫MySQL底層原始碼,以適應新的硬體環境,處理高併發大規模資料容量且業務場景負責的問題,以及支援新研發的多種儲存引擎;

非常遺憾的是連續被併購與資源整合,導致技術研發團隊的開發任務進度中斷和新儲存引擎的研發專案夭折,以及MySQL AB公司技術團隊研發人才流失嚴重,尤其公司創始人與管理層人員的出走,也制約研發專案的進展與質量保證。

(三)   甲骨文公司戰略主導下的MySQL資料庫產品方向

通過MySQL AB公司官方網站的版本釋出與BUG修復資訊,我們大家可以發現MySQL AB公司被SUN收購,此後SUN又被甲骨文收購的這2年時間裡,MySQL資料庫研發速度是非常緩慢的,但是第三方公司對MySQL原始碼改進與支援,尤 其像Percona、MariaDB等公司推出改進版本的MySQL資料庫產品,並且大量技術人員都開始測試與考慮使用這些第三方公司釋出的功能完善與性 能優越的MySQL,使甲骨文公司開始著急,為此倉促地推出MySQL 5.5 GA版本。甲骨文MySQL 5.5 GA版本釋出會上海現場,本人曾經向時任MySQL AB公司的CTO提問,關於甲骨文如何看待MySQL的發展與資源投入,他無奈地說:他們是和尚,只管唸經不問俗事,釋出會之後私底下也有一番溝通與探 討,明顯感覺到甲骨文公司高層也非常困惑,大致有以下幾點:

(1).     甲骨文公司並不想投入很多資源與精力,重點發展MySQL資料庫產品;

(2).     有技術社群的支援,MySQL資料庫產品的研發能力與速度會使MySQL資料庫產品越來越優秀;

(3).     MySQL資料庫產品對甲骨文的Oracle資料庫市場衝擊越來越大;

(4).     甲骨文公司收購SUN之後,大量原MySQL AB公司的僱員離職,創辦自己的公司,並從事MySQL資料庫產品的技術研發與服務提供;

(5).     甲骨文公司不發展MySQL資料庫產品,但是其他第三方公司研發的MySQL資料庫產品越來越好,將不久取代MySQL AB公司在開源領域的地位;

(6).     甲骨文公司收購SUN時,曾經對歐盟、MySQL AB公司、開源社群等作出過承諾,也不能完全失信於人,否則可能給自己開拓市場帶來負面影響;

自從甲骨文決定繼續投入資源發展MySQL資料庫產品,可以逐漸清晰甲骨文公司對MySQL資料庫產品的重新市場定位與 戰略規劃。MySQL AB公司長期以來,都不重視對Windows平臺的支援,我們大家可以發現MySQL 5.5之前的所有版本,同一版本號的MySQL產品執行在Windows平臺和Linux平臺之間一對比,會發現Windows平臺的效能遠遠低於其他平 臺,Windows平臺上MySQL資料庫產品BUG眾多,MySQL資料庫修復的BUG List中幾乎很少提到針對Windows平臺的修復資訊。

MySQL資料庫主要是執行在Linux或類Linux作業系統(注:少量執行在Solaris系統上)之上,而大量企 業的Oracle資料庫是執行在AIX、Solaris、Linux系統之上,若是把Oracle資料庫支援的資料服務,遷移到MySQL資料庫平臺上, 那麼可以節約大量資金,大致如下:

(1).     Oracle資料庫的License費用可以全免或大規模降低(注:MySQL資料庫是社群版本免費,企業版本收費);

(2).     Oracle資料庫產品多數搭配儲存裝置與小雞一起使用,而MySQL資料庫主要執行在廉價的PC Server上,可以為企業節約大量資金投入;

(3).     Oracle資料庫執行在AIX、Solaris(注:分社群與企業,社群要差很多)收費作業系統上,且搭配儲存裝置使用,主要是能更好發揮Oracle資料庫的效能,使用MySQL之後也可以減少部分費用(注:多數跑在開源的Linux系統之上);

(4).     Oracle資料庫產品支援的多數業務,可以使用MySQL搭配InnoDB儲存引擎的模式替換;

(5).     Oracle資料庫產品的License費用、執行的裝置與系統等,不利於企業花費較少費用就能處理網際網路行業大資料量的要求,也即不得不花費更多的錢購 買儲存裝置與購買License費用,否則對資料進行拆分儲存無法推薦,然後MySQL卻有天然的優勢;

(6).     MySQL資料庫產品對開發人員要求不高,學習成本非常低,且MySQL資料庫技術使用人群越來越多,資料庫解決方案也越來越成熟;

上述6點,以及MySQL資料庫產品對Windows平臺支援不重視,導致MySQL資料庫產品主要是取代Oracle 資料庫產品的市場份額,為此甲骨文公司決定投入大量資源改進MySQL資料庫對Windows平臺的支援,同時大力發展MySQL資料庫維護的圖形化工 具,以幫助使用Windows平臺的企業和技術人員,放棄SQL Server資料庫產品之後,降低學習成本,從而更加符合和吸引Windows平臺的企業和技術人員。甲骨文公司投入大量資源之後,MySQL資料庫產品 修復大量Windosw平臺上的BUG,大幅提升了Windows平臺上執行的效能(注:確實可以用提升100倍以上形容),通過這一系列的投入與市場宣 傳推廣,甲骨文公司可以達到不失信於人,繼續發展與鞏固MySQL資料庫產品的地位,同時把MySQL資料庫產品佔領市場的戰場正式引向競爭對手之一—微 軟的SQL Server資料庫產品,部分減輕MySQL資料庫產品對Oracle資料庫的衝擊,屬於一舉多得的戰略行為。

(四)   擔憂

1)         技術研發人員分散

MySQL資料庫屬於甲骨文資產之後,MySQL AB創始人接二連三出走,以及產品研發團隊出現大批技術人員的離職,多數離職之後創辦自己的公司,欣慰的是繼續投入開源MySQL資料庫領域,只是他們有 些人對MySQL進行裁剪後獨立發展,例如: SkySQL等,有些是研發新的儲存引擎,例如Percona、MariaDB….這樣會導致MySQL開源領域的研發技術實力分散,不利於促進 MySQL資料庫的功能完善與技術革新,畢竟早期開發的MySQL版本主要是跑在價格低廉,效能一般的PC Server上,但是近幾年PC Server 的硬體處理能力得到飛速發展,甚至現在的PC Server比抵擋儲存裝置的效能優越。MySQL資料庫產品必須加快速度,改寫原始碼實現對PC Server的SMP架構支援,對SSD硬碟等新型技術的支援,現階段SSD硬碟越來越接近生產環境的要求,價效比也越來越有競爭優勢,為此非常擔心 MySQL資料庫產品錯過美好的發展時機,而無法完善自己的產品功能、快速提升處理能力、提高產品的穩定性等。

2)         甲骨文公司的資源投入

相信隨著PC Server處理能力的提高和SSD硬碟等硬體的快速發展,MySQL資料庫產品的功能完善、效能和穩定性提高,對Oracle資料庫產品的衝擊會加劇, 並且可能滲透到對資料庫要求更高的領域,恰恰又是Oracle資料庫產品的主要市場與收入來源。雖然MySQL資料庫產品得到發展,甲骨文公司從 MySQL資料庫產品上獲得的收益未必會大幅增加,甚至繼續出現投入產出負比例的情況,甲骨文公司除繼續保持MySQL資料庫企業版本閉源,與不向社群提 供原始碼貢獻的策略之外,還可能減少投入與限制MySQL資料庫社群版本的發展,本身企業版本不向社群版本貢獻原始碼的做法,時間越久越可能出現社群版本落後 於企業版本的情況。

甲骨文公司寄希望於MySQL資料庫產品,能夠搶佔微軟SQL Server資料庫產品的市場份額,然後多數中小企業都是使用盜版的Windows作業系統與盜版的SQL Server資料庫產品,可能只有部分企業才會考慮把SQL Server資料庫的資料遷移到MySQL資料庫中。另外,甲骨文公司與合作伙伴(例如:國內的愛可生)想把MySQL資料庫產品打入傳統的生產製造企業 市場,2-3年內可能非常難取得突破性進展,大致的原因:

(1).     中小型生產製造型企業本身就可能使用盜版的SQL Server資料庫產品;

(2).     中小型生產製造企業沒有維護MySQL資料庫的技術人員,也不太會為此投入更多資金;

(3).     生產製造企業對系統穩定性的要求非常高,比網際網路行業更高;

(4).     生產製造企業投入到軟體系統的資金與費用是可控與有付費物件的,沒有必要為了不一定省錢的技術革新行為而換資料庫產品

(5).     全球的經濟不景氣,生產製造企業受傷害最大,更沒有精力投入到系統的資料庫產品更換一事上;

(6).     生產製造企業的系統,一般都是採購第三方公司的產品,且穩定執行之後,很少出現大的改動或更新,為此不可能為了一點點利益而冒風險更換資料庫產品;

3)         MySQL資料庫產品成為甲骨文公司攻擊SQL Server資料庫的工具

前面已經闡述過,甲骨文公司為何要發展MySQL資料庫對Windows系統的支援,就是希望利用MySQL資料庫產品 搶佔SQL Server資料庫的市場份額,為此可能出現甲骨文大力度優先發展Windows平臺的MySQL資料庫產品和圖形化維護管理工具性軟體,而忽略其他平臺 的MySQL資料庫產品技術革新與發展,從而錯過美好的發展時機。MySQL資料庫產品是基於GPL協議的,但是可能存在一些技術專利侵犯到其他資料庫廠 商的利益,包過微軟公司,為此可能導致微軟公司向甲骨文公司提出專利訴訟,從而也會間接限制MySQL資料庫產品發展。

4)         MySQL資料庫變得越來越臃腫

甲骨文要想讓MySQL資料庫產品搶佔SQL Server資料庫產品的市場份額,必然會為MySQL資料庫產品新增非常多,類似於SQL Server資料庫產品的功能,再加入一些其他熱門技術產品方向的支援,例如對NoSQL、MemCached等支援,從MySQL 5.6版本公開的開發任務列表也可以佐證,這樣必然會使MySQL資料庫產品越來越臃腫,從而失去MySQL資料庫產品的三個特點:輕、快、穩,也即資料庫功能不復雜且滿足多數業務需求,資料和業務處理的效能非常優越,資料庫伺服器執行穩定,這三個特點也是MySQL資料庫獲得網際網路企業和技術人員青睞的重要原因之一。

結束語

撰寫此文目的是希望能引起更多技術人員及企業,對MySQL資料庫產品發展的關注,也相信MySQL資料庫產品應用的前 景會越來越大,但是我們要監督甲骨文公司對MySQL資料庫研發資源的投入與產品發展方向的關注。對於很多MySQL使用者最關心的問題,甲骨文是否會對 MySQL資料庫社群版本也進行閉源,也即可能是關閉MySQL社群的擔憂,這是無需擔憂的事情,MySQL資料庫是基於GPL協議的,所以甲骨文公司無 法單方面作出此決定。考慮到甲骨文公司因市場戰略需要,而導致MySQL產品向我們大家不希望的方向發展,同時多關注第三研發公司的MySQL版本,尤其 推薦MariaDB、Percona。