年終歲末,又到盤點之時,我們就一起來看一下在2006年一年之中,關於開源數據庫,發生了哪些事情。
擺在開源數據庫面前的“收購毒餌”
近年來,數據庫領域的開源數據庫公司和產品常常面臨被收購的危險,更何況還有Oracle這個收購“狂人”在推波助瀾。繼2005年10月份 Innobase公司及其開源數據庫InnoDB被Oracle收購之後,2006年2月份,位於美國加州的開源數據庫廠商Sleepcat公司及其旗下產品BerkeleyDB數據庫也被商業數據庫巨頭Oracle收購了。並在這之後,Oracle還試圖收購另一開源數據庫廠商MySQL——但是, MySQL的首席執行官在2006年7月份的一次技術論壇上對此表示,希望“保持MySQL公司的獨立性”,從而拒絕了Oracle的“好意”。
從InnoDB和BerkeleyDB的技術特性上來看,Oracle最想收購的也許是MySQL。
InnoDB和BerkeleyDB技術在一段時間之內,曾是MySQL數據庫中的關鍵性技術。InnoDB采用GPL許可協議,被捆綁在MySQL數據庫中。MySQL曾經普遍地使用InnoDB做為自己的事物型數據存儲引擎。而Sleepycat的Berkeley DB曾是MySQL的一個重要的嵌入式事物型存儲引擎——MySQL在最初並沒有屬於自己的用於負責數據的物理存儲和索引的存儲引擎。
InnoDB曾經是MySQL 5中的一個核心部分。在被Oracle收購之後,MySQL出於自己的某些考慮,在2006年2月底宣布采用Firebird數據庫架構來取代 InnoDB——InnoDB是Firebird社區中討論得最熱烈的。但是,MySQL要把Firebird變成企業級的關系事務處理型的數據庫引擎,還需要付出很大的努力。而在2006年4月份,有分析人士認為 MySQL會考慮把SolidDB做為自己的事物存儲引擎,以替代被Oracle收購的InnoDB。事隔3個月之後,2006年7月25日,Solid Information Technology公司宣布,其專門為MySQL量身定做的Beta版SolidDB Storage Engin正式對外發布。
從表面上看,對Sleepcat的收購可以拓展Oracle對嵌入式DBMS(Database Manage System,數據庫管理系統)的支持。針對移動設備,Oracle已經擁有了自己的Oracle Lite;而對於高性能分析和高速處理的內存應用程序,Oracle有TimesTen DBMS。被收購的Sleepcat旗下的Berkeley DB數據庫,可以給Oracle提供嵌入式應用市場的需求。這樣也許可以確保Oracle在嵌入式數據庫領域,保持自己在商業數據庫領域的慣有地位。對於在商業市場上已經存在了9年的Sleepcat,它已經擁有了一批忠誠客戶擁趸。而Oracle對它的收購,其潛在的本意也許是看中Sleepcat的這個客戶基礎。
從另一方面來看,歸為Oracle門下,可以為Berkeley DB帶來更主流用戶市場的需求,並且可以通過Oracle的銷售力量和客戶支持組織為BerkeleyDB帶來更多的產品影響力。但事實上,這次收購並不暗示著Oracle計劃把TimesTen或Berkeley DB整合到Oracle 10g或Oracle Lite中。Berkeley DB並不使用SQL,也不支持PL/SQL。而Oracle的戰略是為不同層次的嵌入式DBMS應用,提供合適的DBMS解決方案。Oracle旨在利用其已經宣布出去的不同的接口和工具,促進不同類型數據庫之間數據的流通。“替他人做嫁衣裳”的事情,Oracle不會去做的。
同樣在2006年2月份,Oracle對BerkeleyDB完成收購之後,MySQL並沒有“束手待斃”。MySQL隨後以很快的動作收購了基於Web應用技術的Netfrastructure公司,並且把Netfrastructure的創始人Jim Starkey聘為MySQL的高級軟件架構師。Starkey被認為是關系型數據庫的先鋒,是InterBase數據庫(InterBase被認為是第一款支持觸發器、事件警告、數組、多版本的數據庫)的創始人,他在嵌入式Firebird數據庫項目中扮演著關鍵性角色。Jim Starkey的加入,也許可以幫助MySQL抵御來自Oracle的入侵。比較有趣的是,MySQL同時還雇傭了Starkey的妻子Ann Harrison做一些兼職性的工作。MySQL對Jim Starkey可謂是“負責到底”,解除了他的“後顧之憂”。
2006年9月份,隨著MySQL 5.1.12的發布,MySQL去除掉了對BerkeleyDB存儲引擎的支持。對此,有分析人士認為這也許是與Oracle收購Sleepcat有關系,是對Oracle的一種變向的“反擊”。有人猜測MySQL下一個要拋棄的也許會是InnoDB。但MySQL官方對此表示:MySQL不會拋棄 InnoDB,而對於BerkeleyDB的放棄完全是出於技術原因。而實際上,MySQL與InnoDB的“合作契約”在2006年就到期了。 MySQL拋棄InnoDB與否,已經無關緊要了。
發生在2006年初的這宗開源數據庫收購案,對於數據庫業界的而言,有人形容是一個有趣的2006年的開始。也許到2007年,還會有一些開源數據庫被納入Oracle的旗下。
不相伯仲
時常被收購陰影籠罩的MySQL在2006年年底又受了一次小小的“打擊”。在2006年11月期《Linux Journal》雜志的“2006年度開源數據庫編輯選擇獎”評選中,號稱“世界上最流行的開源數據庫”MySQL卻名落孫山,取而代之的卻是“世界上最先進的開源數據庫”PostgreSQL。
但是,在2006年7月份,MySQL公司及其數據庫產品被Forrester調查研究公司提名為“開源領軍人物”。這是唯一的一家公司及其產品,同時在Forrester的兩份調查報告中被作為“領軍人物”提名(這兩份報告分別是《The Forrester Wave: Open Source Databases(2006年第二季度)》和《The Forrester Wave: Open Source Projects(2006年第二季度)》)。
拋開《Linux Journal》和Forrester的權威性不談,摒棄各位編輯和分析人士的好惡不論,一旦談論開源數據庫領域的領軍人物,MySQL和PostgreSQL總是不相上下。
2006年的6月份,PostgreSQL慶祝了自己的10歲生日。並在當月升級更新的Sun Solaris 10中,被全面支持——Sun在2005年11月份就最初宣布支持PostgreSQL,並且雇傭了PostgreSQL核心團隊成員Josh Berkus,擔任Sun數據庫技術的PostgreSQL的領導人。之後,在同年8月份,以PostgreSQL為基礎的開源數據庫 EnterpriseDB同樣獲得Sun選擇,以為Sun公司提供技術支持及相關的專業服務。
“陽光”照亮開源數據庫?
無論是主流商業數據庫巨頭對開源數據庫的觊觎,還是一些大型軟件廠商對開源數據庫的支持,都證明了開源數據庫已經形成了一定的影響力。
目前的開源數據庫市場為3億美元,並且正在以大約8%的增長率持續快速的增長。按照這個速度,到2008年的市場份額大約為10億美元。與開源數據庫相關的需求和咨詢在2005年增長了50%,對於開源數據庫的推進有很大作用和影響。在2006年,開源數據庫的關鍵性部署增長了大概20%。而在余下的2 年中,更多的數據庫廠商將會被吸引,以在自己的產品中應用或支持開源開源技術。
來看一下來自Gartner/IDC的一些分析和調查數據:
到2008年,將有70%以上的IT組織使用開源數據庫。
到2008年,MySQL將會成為關鍵應用的重要選擇。
被調查公司中的40%計劃用開源數據庫取代私有商業數據庫管理系統。
被調查公司中的49%的已經在使用MySQL,17%計劃使用MySQL。
同時,Gartner還把MySQL稱作開源市場內最強大的“新生力量”——這個稱號也許有些言過其實。
開源數據庫和開源操作系統
同屬於開源領域的開源數據庫和開源操作系統,雖然都戴著“開源”這頂“時尚的帽子”,但它們之間存在著很大的不同點。盡管有許多的開源數據庫被用戶廣泛地使用(例如MySQL),運行在開源操作系統上(例如Linux),但是對於開源數據庫的開發,並不如開源操作系統那樣先進和高級。在開源社區中,有數以萬計的開發人員為開源操作系統(例如Linux)做貢獻,貢獻源代碼。但是相比而言,在開源數據庫方面,卻顯得“人丁”不夠興旺。開源操作系統所擁有的開源社區的技術支持和深厚背景,是與開源數據庫最大的不同點。
對於開源數據庫而言,也許要用上大概10年的時間,才能夠達到滿足企業級核心系統在商務智能數據庫倉庫方面的需求。
諸如MySQL、PostgreSQL、EnterpriseSQL等的開源數據庫,與現有的諸如Oracel、IBM、微軟的主流商業數據庫產品相比,在高可用性、企業級的應用、關鍵性應用的層次上還有一定的差別。
雖然開源數據庫在2006年的關鍵性部署增長了約50%,但是其起點很低。開源數據庫更多的被應用在小規模的項目中,例如Web應用和服務器應用。在 Google、Yahoo!等公司裡,雖然有MySQL的部署,但是很能發現MySQL被應用在關鍵性的“苛刻”需求的領域中。對於關鍵性事務的處理,企業和用戶仍然會選擇有完備功能和完全支持服務的商業數據庫產品。開源數據庫的支持服務在一定程度上也許可以略勝一籌,但是,如果開源數據庫不斷加入、改進、提升自己的產品性能,那它是否會成為那些主流商業數據庫的“原始版”產品?請不要忘記,“你自己在進步的同時,敵人也在進步”。
Linux為運行開源數據庫提供了一個可用平台,並且許多公司已經選擇在Linux上運行開源數據庫。但是,Linux環境並不是真正的企業級應用環境。在未來的3—4年裡,Linux環境必須趨於成熟,以達到滿足大型機性能和企業級用戶的需求,即Linux在未來需要扮演如今Unix的角色。平台的成熟,才能保證開源數據庫的成熟和關鍵性應用。雖然Unix的使用增長率正在減緩,在五年之內,Unix的市場份額會可能會被Linux和Windows 所侵占和控制。但是距離Unix的葬禮還有一段時間,或許需要10—20年的時間吧。
被競爭掉?被收購掉?
開源數據庫在自我增長的同時,還要時刻提防類似Oracle、IBM、微軟這些商業數據庫巨頭的“小動作”。
顯而易見,Oracle一直對開源數據庫領域的廠商虎視眈眈,並且已經有所斬獲。IBM和微軟對開源數據庫廠商也有各自的收購“戰略計劃”和“軍費預算”。這些廠商真實的收購目的,其實是想以此收購開源數據庫的市場份額。微軟和IBM是否會步Oracel的後塵,或者投資於其它風險開源數據庫廠商,有待歷史勘查。對於這些主流商業數據庫廠商而言,開源數據庫公司對目前全球140億美元的DBMS市場份額(並正在以7%的增長率增長)的“竊取”,“討厭”成分大於“威脅”。
開源數據庫廠商還要面對來自這些主流廠商的競爭。事實上,這些巨頭廠商都已經對自己的產品價格打了很低的折扣,並且還在適當的時候向用戶提供免費的、集成了“縮小比例”的高級功能的數據庫產品。另外,這些主流廠商在不增加任何成本的前提下,在自己的產品中增加和支持了開源數據庫現在所擁有的技術。Oracle在花費3百萬美元收購Innobase之後,在其基礎之上發布了Oracel Database 10g Express的免費版本。而微軟也發布了“縮水版”的SQL Server Express。
不要以為這些巨頭廠商推出基於開源技術的數據庫產品,就表示他們願意采用開源社區的原則和“教義”。也不要指望他們會提供免費的企業版數據庫軟件。這些做法都只是暫時的,對於的這些巨頭廠商而言,最容易奏效的方法,就是以收購自己的競爭對手來作為保護自己的市場份額的一種方法。難道你認為Sleepcat被收購之後,就會成為 Oracel產品線上的一款開源數據庫產品嗎?被收購的公司一旦成為這些巨頭公司中的“光榮一分子”之後,他們各自身上的“鮮亮”特性將會隨之消失。
開源數據庫的角色轉換
開源數據庫的影響力是值得肯定的,但是開源數據庫產品終究是誕生於“開源人”之手。做為開源的狂熱者,這些開源數據庫的開發者在設計產品時始終是出於開發者的前提,而非專門針對產品用戶的需求,這也就決定了開源數據庫相對於大型商業數據庫的在功能上的欠缺。主流開源數據庫MySQL和 PostgreSQL已經分別存在了20年和10年,而它們的主流用戶卻仍然定位在中下企業級用戶。
開源數據庫的“開源”特點為其帶來的價格優勢成就了開源數據庫的應用和市場,但是也在一定程度上限制了其產品的商業化應用。雖然IBM把自己的Cloudscape貢獻給開源社區,公司官方論調稱是希望借助開源社區的開發者的人氣和群策群意的技術優勢,但是,這只是表明了IBM對待開源,對待開源數據庫的一種態度,是IBM在開源行動中表現出來的一種姿態。Oracle在推廣自己的收購戰略的同時,幾次三番的對開源數據庫“示愛”,其目的或許是通過收購來限制與自己存在競爭關系的開源數據庫在功能上完善和提高,特別是開源數據庫的多數據處理能力。微軟公司依靠SQL Server系列產品占據數據庫市場的第三位,SQL Server起初的定位就是中小企業級用戶,時隔五年,到2005年底微軟推出SQL Server 2005,旨在進軍高端企業市場。在開源的熱潮中,微軟此舉明顯表示其仍然要固守商業數據庫市場。
開源數據庫是贏得了一些大客戶,但是分析人士指出:MySQL是在很長一段時間之內,通過很大的努力才爭取到這些大客戶的。
開源數據庫廠商和產品如何在市場中轉換自己的角色:是把開源角色轉換成商業角色?是仍然持續自己的開源角色?是扮演開源與商業的雙重角色?
開源數據庫的商業角色的扮演只能依靠技術支持和服務,但是如果開源產品在完善自我功能以滿足高端客戶需求的同時,其技術支持和服務也相應提高了收費標准,這和用戶直接購買功能完善的商業數據庫還有什麼區別?
至於開源角色的扮演,難道開源廠商想把自己的公司變成慈善機構嗎?
商業與開源角色的混演,就要考慮到如何平衡二者的關系,如何應對來自商業和開源雙方的壓力。
開源數據庫有潛在的市場和空間,但是開源數據庫需要考慮以什麼樣的角色,選擇什麼樣的策略才能在數據庫市場站穩。誰最終能夠站穩,站穩之後的高度是多少,空間又是多少,這些都是需要認真思考的。
來自:It168