数据库周边的名人轶事(202x)
2009-11-10 08:45:07 阿炯

本文收录了业界对数据库领域的一些轶事,2030年之前截止,供各位参考。

盘点2006开源数据库:面临竞争和收购的选择

开源数据库前途或将堪忧

甲骨文战略主导下MySQL数据库将走向何方

80岁图灵奖得主再度出山,打造基于数据库的云原生操作系统 DBOS

盘点2006开源数据库--面临竞争和收购的选择


年终岁末,又到盘点之时,我们就一起来看一下在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是在很长一段时间之内,通过很大的努力才争取到这些大客户的。


开源数据库厂商和产品如何在市场中转换自己的角色:是把开源角色转换成商业角色?是仍然持续自己的开源角色?是扮演开源与商业的双重角色?

开源数据库的商业角色的扮演只能依靠技术支持和服务,但是如果开源产品在完善自我功能以满足高端客户需求的同时,其技术支持和服务也相应提高了收费标准,这和用户直接购买功能完善的商业数据库还有什么区别?

至于开源角色的扮演,难道开源厂商想把自己的公司变成慈善机构吗?

商业与开源角色的混演,就要考虑到如何平衡二者的关系,如何应对来自商业和开源双方的压力。

开源数据库有潜在的市场和空间,但是开源数据库需要考虑以什么样的角色,选择什么样的策略才能在数据库市场站稳。谁最终能够站稳,站稳之后的高度是多少,空间又是多少,这些都是需要认真思考的。

开源数据库前途或将堪忧

2009年11月消息,如果MySQL被最大的私有数据库厂商Oracle收归麾下,可能遭到Oracle的抛弃甚至打压。如果MySQL这面大旗倒下了,开源数据库的发展将受到很大的挫伤,甚至改变目前的市场格局。而Red Hat以1900万美元注资开源数据库厂商—EnterpriseDB,这极可能是新一轮争夺战开始的信号。

MySQL被称为是最好的开源数据库”,如今它的命运却取决于Oracle与Sun并购案的结果。有消息说,正在调查该交易的欧盟委员会将在11月19日做出是否批准该交易的决定。2008年2月被Sun以10亿美元收购的MySQL,前路仍然难料。有意思的是,10月27日,Red Hat宣布以1900万美元注资开源数据库厂商—EnterpriseDB。消息一出,立刻被业界解读为Red Hat另辟蹊径发展开源数据库,不想以后受制于Oracle和MySQL。如果MySQL的大旗倒下了,众多力量分散且弱小的开源数据库将展开激烈的争夺,开源数据库市场也许将进入春秋战国时期,而谁又会是下一个市场领袖呢?

“标杆”MySQL

在几百亿美元规模的数据库市场中,开源数据库的份额微乎其微。以IDC 2007年对全球数据库市场的统计为例,在总共188亿美元的市场中,Oracle、IBM、微软位列前三位,合计市场份额达到83.8%,而MySQL 以3800万美元的收入占到0.2%。Gartner预计,2013年开源数据库市场将突破10亿美元,但与整个数据库市场相比,依然小得可怜。

不过,开源数据库却展示出了高成长性。Gartner数据显示,2008年开源数据库的收入增长了42.4%,开源数据库的使用增长了50%,被调查的企业中,73%正在使用开源数据库,相比上年的49%有很大增长。在这个不大的市场上,MySQL有着重要的地位。中国开源软件推进联盟主席陆首群表示,MySQL、PostgreSQL、EnterpriseDB 是全球三大开源数据库。MySQL既是一个开源的开发社区,提供自由下载使用的免费版本,也提供商品化的产品,收取技术支持服务费用。

数据显示,截至2009年1月,MySQL的用户有1100万,谷歌、雅虎和亚马逊等许多互联网公司都是它的用户。被Sun收购之后,MySQL先后开发出MySQL5.0、MySQL enterprise等新产品,在MySQL5.1对外开放的头10天内,下载次数就超过了25万次。陆首群表示,MySQL在中国市场也有不错的销售业绩。2007年,华为、爱立信中国、西门子中国等大企业都采购了MySQL的产品。2008年,MySQL又获得了新浪等公司的青睐,当年在中国市场的销售额达到1500万元,估计今年的收入将超过2000万元。

因此,MySQL的一举一动都是开源数据库市场的风向标。如今,它的前途因为Oracle与Sun并购的悬而未决而飘忽不定。尽管Oracle承诺会保持MySQL的独立性,众多反对者还是担心,如果MySQL被最大的私有数据库厂商Oracle收归麾下,可能遭到Oracle的抛弃甚至打压。

MySQL前途难料

最近几年,在开源大势之下,Oracle、IBM、微软等已经纷纷向开源伸出了橄榄枝。“IBM和Oracle既有商业数据库,也有开源数据库,采取了两手发展的策略,问题只是什么时候从幕后走到台前罢了。”陆首群说。不过,这些“大佬”虽然打出了开源的旗号,但他们离真正的开源还有很远的距离。这也是业界担忧MySQL的前景、强烈建议Oracle将MySQL出售给独立第三方的原因。

开放源代码软件社区领袖Richard Stallman在给欧盟委员会的信中表示,“如果Oracle是今日旧数据库市场的统治者,MySQL就是未来新兴数据库市场的主导者,MySQL可以被视为Oracle未来最重要的竞争对手。”

一旦MySQL被Oracle所合并,Oracle不仅没有义务积极推销MySQL,或以合理价格提供其商业授权,更没义务拿自己的营收来改进MySQL。面对商业数据库软件与开源数据库之间的利益冲突,恐怕Oracle会优先保护其收费的数据库产品。曾是MySQL股东和顾问的Florian Mueller表示,“让Oracle得到MySQL比让狐狸负责鸡舍更可怕,因为母鸡没有对狐狸构成威胁,而MySQL却让Oracle丢失客户,并不得不给一些因威胁可能离开的客户以折扣。”

Mueller反对Oracle得到MySQL,他认为目前的事实表明,Oracle只是想借此摆脱自己的开源挑战者。Stallman也表示,MySQL被Oracle合并将是一种倒退,可能会瓦解MySQL的核心开发者社群。而产生另一个足以与MySQL相提并论的数据库平台,恐怕还需要很多年的时间。

谁是下一个领袖?

“多年来PostgreSQL一直活在MySQL的阴影下,现在也许是它大放异彩的时候了。过去公司花费了太多的时间讨论与MySQL的竞争,以及如何从Oracle移植过来。在刚刚发布Postgres 8.4数据库时,EnterpriseDB没有提及任何竞争对手,这是一个可喜的变化。”CNET网站的一篇文章说。对Red Hat来说,注资EnterpriseDB是一笔不错的买卖。“Red Hat是一个开源比较全面的公司,既有Linux操作系统,又通过并购Jboss得到了开源中间件,这次又获得了开源数据库,开源产品线不断完善。”陆首群说。目前,很多企业在应用开源数据库的同时也使用开源操作系统,反映了市场需要的变化。

EnterpriseDB在最近几年异军突起,成为支持和推动PostgreSQL发展的领先厂商。PostgreSQL一直是开源数据库市场的柱石,被称为“最先进的开源数据库”。2008年3月,EnterpriseDB获得了新一轮总额达1000万美元的投资,其中就有IBM的参与。当时的文章显示,EnterpriseDB拥有超过200家客户,预计2008年度实现盈利。

2007年7月,EnterpriseDB携带EnterpriseDB Advanced Server产品正式进军中国市场。资料显示,许多为Oracle设计的应用软件无需修改即可移植到EnterpriseDB上,也可以轻松地从 Microsoft SQL Server、MySQL和Sybase数据库移植过来。陆首群认为,除了以IBM为首的J2EE、以微软为首的.Net架构外,由开源软件形成的LAMP(Linux、Apache、MySQL、PHP)架构正在蓬勃发展,成为三大IT架构之一。有了这样的架构,开源厂商可以为用户提供完整的解决方案,而开源数据库是其中不可或缺的一个部分。

“近日,美国的白宫网站完全采用了LAMP架构,美国国防部等机构也对安全性高、成本低、灵活性好的开源软件表示出了极大的兴趣。美国还出现了 WAMP的混源架构,即在Windows操作系统的基础上,采用开源的中间件、数据库等。”陆首群表示。在市场需求不断释放的刺激下,越来越多的厂商开始挖掘开源的市场机会,新的开源数据库领袖正在形成。

了解开源数据库

开源数据库发飙

开源数据库的销售额在增长,并正在被越来越多的用户所采用。在嵌入式数据库领域,开源数据库优势明显。分析师称开放源码正在迅速被数据库技术所采用。开放源码“从2003年被怀疑到2006年将被发展成为全球的主流技术”。低成本甚至免费的开源数据库时代即将来临。

像很多公司一样,美国国家半导体公司一直在寻找一种削减系统成本的方法,并把Linux和其热衷的开源软件列入了公司IT发展策略的清单。当这家位于美国加利福尼亚的公司开始向Linux转移时,其中一个大的项目就是把目光对准了开源数据库,希望借助开源数据库,找到一种适合其系统架构的低成本数据管理产品。美国国家半导体公司的CIO Ulrich Seif 先生说:“去年我们就开始关注开源数据库MySQL,希望它能尽快支持我们选择的Linux服务器等硬件产品,我们希望能够将基于IBM硬件的数据库应用业务转移到基于Intel平台的硬件上。”

公司也考虑采用PostgreSQL,同时一些小的商业应用也运行在这一开放源码的数据库系统上。Seif说:“今年开始实施的项目密切注视开源数据库产品的发展路线图,并关心它如何在第二层的数据库环境成功地部署和应用。”

其实,美国国家半导体公司并不孤独。开源数据库系统并不是一个新事物,如Postgres已经有20年的发展历史了,而著名的MySQL今年4月刚刚度过了其10周年纪念活动。开源数据库系统也越来越具有更多的企业级产品特征。迅速增长的企业级用户看重它与庞大的、昂贵的、版权私有的商业数据库系统相比的低成本。开源数据库的销售额在增长,并正在被越来越多的用户所采用。开源数据库的时代即将来临。

开源数据库长大了

选择开放源码软件的因素有多种,而近来大量开发者的加入让这一市场变得越来越成熟。以前,人们总认为开放源代码数据库也有它的劣势,比如它没有稳定的技术支持,如果使用中出了问题将会是很麻烦的事。不过目前也出现了一些公司对这些开放源代码的数据库产品提供非免费的技术支持。看看,Novell、Dell 和HP公司等开始出售MySQLAB的数据库产品,并提供支持服务。

8月初,Apache Foundation公司发布了Apache Derby的第一个版本,这是IBM于去年贡献给开放源码社区的一个数据库原型产品。至于Postgres,最近有许多公司宣布可以提供对 Postgres的技术支持。这些公司中的代表如EnterpriseDB成立于今年5月23日,在今年的LinuxWorld上战胜了IBM、 MySQL和Oracle,赢得了“最佳数据库解决方案”。在8月初,它宣布了其基于开放源码的关系数据库管理系统软件EnterpriseDB 2005。

在今年2月,MySQL发布了其基于订阅的MySQL网络,以提供全面支持和公司应用部署。在其冗长的用户名单中包括了Sabre Holdings、大陆航空公司和克莱斯勒汽车公司等。Sleepycat软件公司9月初宣布General Dynamics公司的子公司General Dynamics C4 Systems已经部署了其用Java编写伯克利版的数据库,支持美国国防部过去使用的可视化和协同工具。

各种开放源代码数据库有许多种,主要来说有三种:一是由大学科研原型系统转变为当今的开放源代码数据库,如 PostgreSOL;二是由一个入或者几个人自发开发的数据库系统,如MySQL;三是一些商业数据库为了推广自己的产品,扩大市场份额,开放了自己的源代码,如interBase和SAPDB。

Forrester调研公司高级分析师Michael Goulde说,我们现在每天都要回答大量的对开放源码数据库的用户咨询,以便寻找到一种方式减少IT系统的成本。用户关注其IT系统中最常见的IT技术和产品,希望采用开放源码的技术和产品代替他们以前花费了大量资金购买的技术和产品,这其中就包括数据库。

的确,SQL和其他已经确立的数据库标准,为开放源码数据库项目发展自己的产品,以更简单的方式满足商业公司的IT架构需要提供了一个难得的发展机遇。开源数据库可能不能提供如Oracle或者IBM的数据库那么多的功能和性能,但是分析师指出,在很多情况下,用户实际拥有的系统很多功能和性能没有应用,但是用户通常却要为整个系统付费。

开源数据库如雨后春笋般涌现

今天,开放源代码软件的使用越来越广泛。像Linux操作系统一样,开放源代码数据库的出现也有其必然性。在当 Oracle、IBM、Microsoft、Sybase等几大数据库厂商在数据库领域处于垄断地位的时候,出现了以MySQL、PostgreSQL为代表的开放源代码的数据库系统,推动了开源软件事业的发展。

Forrester公司调查后认为,目前有2/3商业用户以不同形式使用开放源码数据库产品。用户认同了开放源代码数据库相比商业数据库的许多优势,其中包括使用免费,管理简单,系统小巧精干,功能可以与商业数据库相比,甚至更强大(如PostgreSQL)等。开放源代码数据库没有稳定技术支持的劣势,正逐渐被解决。

据不完全统计,目前世界上存在至少上百种开放源代码数据库系统。ACM/SIGMOD(美国计算机学会数据库专委会)列出了60种公众可以使用的开放源代码数据库系统。这其中包括比较著名的MySQL、PostgreSQL、SAPDB、InterBase、 mSQL(miniSQL)等数据库系统,同时还有许多用Java写的数据库系统和XML数据库,如HyperSonic、XQL、MekoiSQL、 sMYLE、eXist等。

MySQL是1979年Michael Monty 为瑞典一家公司TcX开发的数据库,它是一个快速的多线程和多用户的数据库系统。MySQL在开发初期就为自己定了一个目标,那就是“世界上最流行的开放源代码的数据库”。现在看来,MySQL堪称开源数据库的领军者,同时其数据库在功能上也不存在明显缺陷。9月初 MySQL 5.0已经分发。MySQL自称安装用户已经达到了600万,包括了1500 家网上签约客户和合作伙伴,以分发产品和提供服务。其中不乏大型商用用户,如 Sabre Holdings和PriceGrabber.com。

PostgreSQL对自己的定位是最先进的开放源代码的数据库。20年来,在应用中用户也深深地体会到了这一点。Postgres项目开始于l984年,它是加州大学Berkeley分校的Michael Stonebraker领导的一个科研项目,当时Postgres使用的查询语言是自己定义的Postquel语言,1994年Andrew Yu和Joliy Chen为Postgres增加了一个SQL的解释器,这就是Postgre95。l996年开发者选择了一个新的名字PostgreSQL,以反映 Postgres版本和SQL的能力。

PostgreSQL是一对象关系数据库系统,它不仅支持关系数据库的各种功能,而且还支持类、继承等功能。 PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统。有些特性甚至连商业数据库都不具备。这一数据库研究计划目前已经衍生成一项国际开发项目,并且有非常广泛的用户。

SAPDB给自己的定位是面向企业的开放源代码数据库。SAPDB是德国软件巨头SAP公司开发的数据库系统,2000年年底SAP公司决定开放其数据库系统的源代码。SAPDB国内用户比较少,在欧洲使用的人可能多一些。SRPDB系统给我们的感觉是与 Oracle很像,兼容Oracle的SQL语法,并有像Oracle一样的数据库管理的GUl,管理数据库非常容易方便。

firebird是一个全功能的、高效的、轻量级、免维护的数据库。它很容易让您从单用户、单数据库升级到企业级的应用。一个firebird数据库服务器能够管理多个独立的数据库,每一个数据库同时可支持多个客户端连结。Firebird可以在最常见的硬件环境中工作,甚至非常差的硬件中,也能很好地工作。当然,硬件的要求依赖于你想做什么,例如你有多少个并发用户等。Firebird在常见的平台上都可运行,如Linux和Windows(包括Windows终端服务器)。它支持的平台还包括MAC OS、Solaris及HP-UX。当前有三个服务器版本:标准服务器,每一个客户连接将引发一个服务器进程(支持多处理器);超级服务器,一组服务器进程模块管理所有的客户端连接,当前不支持多处理器;嵌入服务器,整个服务器引擎就是一个动态库,只支持本地通过I/O进行调用。但是,所有的服务器都使用一种数据库格式,因此,你可以很方便地在不同的引擎之间共享数据库文件的数据。

开源数据库嵌入式应用占头筹

自出现商业应用软件以来,数据库就成为软件应用程序的主要组成部分。与数据库管理系统非常关键一样,它们也变得非常庞大,并占用了相当多的系统资源,增加了管理的复杂性。随着软件应用程序逐渐模块化,一种新型数据库会比大型复杂的传统数据库管理系统更适应用户的需求。嵌入式数据库直接在应用程序进程中运行,提供了零配置(zero-configuration)运行模式,并且资源占用非常少。

嵌入式数据库有其独特的运行模式。这种数据库嵌入到了应用程序进程中,消除了与客户机/服务器配置相关的开销。嵌入式数据库实际上是轻量级的,在运行时,需要的内存较少。它们是使用精简代码编写的,对于嵌入式设备,其速度更快,效果更理想。嵌入式运行模式允许嵌入式数据库通过 SQL 来轻松管理应用程序数据,而不依靠原始的文本文件。

嵌入式数据库还提供零配置运行模式,这样可以启用其中一个并运行一个快照。这意味着事务是原子的,它们要么完全执行,要么根本不执行。事务也是一致的,因为在不一致的状态中,该数据库从未被保留,事务还是独立的。所以,如果在同一时间在同一数据库上有两个执行操作的事务,那么这两个事务是互不干扰的,而且事务是持久性的。所以,该数据库能够在崩溃和断电时幸免于难,不会丢失数据或损坏。

基于嵌入式移动数据库的应用可划分为水平应用和垂直应用。所谓水平应用,是指应用方案能够用于多种不同行业,只需要极少的定制工作;而垂直应用则针对特定行业的应用,数据处理具有独特性。开源的嵌入式数据库产品很多,Berkeley DB就是一个开放源代码的内嵌式数据库管理系统。应用它程序员只需要调用一些简单的API,就可以完成对数据的访问和管理。它是通过内嵌在程序中的 Berkeley DB函数库来完成对数据的保存、查询、修改和删除等操作。

Berkeley DB为许多编程语言提供了实用的API接口。所有同数据库相关的操作都由Berkeley DB函数库负责统一完成。这样无论是系统中的多个进程,或者是相同进程中的多个线程,都可以在同一时间调用访问数据库的函数。而底层的数据加锁、事务日志和存储管理等都在Berkeley DB函数库中实现。它们对应用程序来讲是完全透明的。

麻雀虽小五脏俱全。Berkeley DB函数库本身虽然只有300KB左右,但却能够用来管理多达256TB的数据,并且在许多方面的性能还能够同商业级的数据库系统相抗衡。就拿对数据的并发操作来说,Berkeley DB能够很轻松地应付几千个用户同时访问同一个数据库的情况。此外,如果想在资源受限的嵌入式系统上进行数据库管理,Berkeley DB可能是上佳的选择。

SQLite是D. Richard Hipp 用C语言编写的开源嵌入式数据库引擎。它是完全独立的,不具有外部依赖性。SQLite支持多数 SQL 92标准,可以在所有主要的操作系统上运行,并且支持大多数计算机语言。SQLite还非常健壮。其创建者保守地估计, SQLite 可以处理每天负荷多达1万次点击率的Web站点,并且 SQLite有时候可以处理10倍于上述数字的负载。

SQLite的数据库权限只依赖于文件系统,没有用户账户的概念。SQLite 有数据库级锁定,没有网络服务器,并且可以实现多数SQL92标准(但不是全部)。用户需要了解哪些SQL92功能未实现。SQLite 通过数据库级上的独占性和共享锁定来实现独立事务处理。这意味着当多个进程和线程可以在同一时间从同一数据库读取数据,但只有一个可以写入数据。在某个进程或线程向数据库执行写入操作之前,必须获得独占锁定。在发出独占锁定后,其他的读或写操作将不会再发生。

HSQ是一个用Java编写的轻量级数据库。程序员可以用自己的软件直接连接数据库源代码。

移植到开源数据库时应注意的问题

Forrester分析师Noel Yuhanna 在2004年12月撰写的题目为“开放源码数据库时代来了”的报告中认为:“数据库变得越来越通用化和日常化,很少有企业需要高级的数据库功能。我们估计,由商业关系数据库系统产品提供的大多数高级功能很少有企业用户采用,它们有时可能需要,但是在许多项目或者应用中并不需要。”

以国家半导体公司为例,Seif最近将应用从Sybase数据库移植到 Oracle数据库,但是了解到并不是所有的应用都需要高端的Oracle数据库的所有功能。每一个用户都有一个小的合身的数据库,但是它们却拥有一个高端的数据库解决方案,需要专门的技术人员和厂商的支持。许多用户认为,当考虑开放源码数据库时,一个问题逐渐浮出水面,那就是应用移植的方便性、性能的水平和支持来自哪儿。

PriceGrabber.com 公司技术总监Corey Ostman认为:“假如你正在将应用从商业的个人拥有的数据库转移到开源数据库上时,那么你必须仔细检查应用的类型。”这家位于美国加利福尼亚的公司从 1999年就开始使用MySQL。该公司也曾经考虑采用Oracle的产品,但是最后选择了性能和支持都更好的MySQL。一个简单的只读应用选择一个新型的数据库产品一般不会引起太大的争论。更复杂的是,读/写事物处理的数据库可能需要商用数据库,可能需要做更多的工作。

加利福尼亚州Garden Grove城的高级信息系统分析师Noel Proffitt说,数据库应用部署成功的关键是从小做起。Garden Grove自2002年开始就在使用PostgreSQL,同时大多数应用使用开放源码的数据库。下载PostgreSQL就可以开始用了,你不会收到任何让你付费的通知。没有许可证到期的顾虑。所以在你的应用中用它,应用会变得越来越成熟。IBM、Oracle和Microsoft 并没有重视来自开放源码数据库的压力。Oracle公司总裁Charles Phillips 说,开放源码数据库对引入新用户发挥着重要的作用,这些用户我们以前不了解。40%的开源数据库用户以前没有使用过数据库,当他们需要数据库完成关键业务时,他们会选择商用数据库,包括Oracle的产品。

但是采用开放源码系统包括开放源码数据库的用户很明显正在快速增长。Forrester公司估计,开源数据库在 2004年的市场销售额已经达到了1.2亿美元,虽然只占超过100亿美元的DBMS市场的一小部分。今年,Forrester通过对95位已经使用或者在未来12个月计划使用Linux 或者开放源码系统的IT主管的调查后发现,其中超过一半的企业已经使用了开源数据库MySQL。

分析师认为,在大多数情况下,开源数据库并不支持大多数关键应用。正因为如此,除了专门应用领域外,开放源码数据库很难撼动占据企业核心应用的IBM、Microsoft和Oracle数据库产品的地位。Burton集团高级分析 Peter O'Kelly认为,“在商业DBMS市场中,这三家企业控制了超过85%的收入。

(这部分源自计算机世界报 2005年10月10日 第38、39期 B2、B3)

甲骨文战略主导下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。


Michael Stonebraker再度出山 打造基于数据库的云原生操作系统 DBOS

数据库领域一共出了四位图灵奖获得者,按照先后顺序分别是:
开创数据库品类的 Charles Bachman
发明数据库关系模型的 Edgar F. Codd
实现第一个关系型数据库系统 System R,引入 ACID 的 Jim Gray
以及本节(转自 Bytebase 公号)的主人公 Michael Stonebraker,也是唯一健在的一位。

Stonebraker 教授之前在伯克利,现在在 MIT。他主要的贡献来自于两方面,一方面是在数据库理论上,引入对象概念,如今知名的 PostgreSQL 数据库的前身就是他发起的 Ingres 项目。Postgres 既是 Post-Ingres,后来加上了 SQL 层,才变成了今天的 PostgreSQL。另一方面是在工业界的实践,教授是一名连续创业者。最早基于 Postgres 工作创立了 Illustra,卖给了当年的数据库巨头 Informix。后来又先后创立了 Vertica 以及 VoltDB。


本来以为教授该颐养天年了,没想到以 80 岁高龄,在2024年再度出山。这次老爷子还跨界了,把手伸到了操作系统领域,要把操作系统建在数据库上。通常的认知里,数据库是建在操作系统之上的,而教授则要乾坤反转。大概是下面这个架构。


来是一张更加具体的图。


是不是还是有点抽象,那就看下面这个例子,来自 IBM 古早的 AS/400 大型机。是的,这个架构在很早的 IBM 大型机里就有了。


上面这张图是文件目录,PEOPLE 是一个文本文件。QCSRC 也是一个文本文件,不过是代码文件。而 HELLOWORLD 则是通过 QCSRC 编译出的程序。这个看上去和我们现在熟悉的文件目录类似,但其实这是一张数据库的表,为什么这么说,我们看下面这张图。


我们打开了 QCSRC 的源代码文件,展示了 Hello world 的 C 代码。但是这个打开的方式,不是 open file.c。而用的是 SQL 语言 SELECT * FROM qcsrc。仔细看的话,这其实是一样表,每一行就是表的数据行。


因为是一张表,所以我们也可以用 SELECT * FROM qcsrc ORDER BY scrdta 打开,这时你会看到行重新排列了。

作为当年的卧龙凤雏,IBM 之外,微软也曾经动过这个念头。微软历史上 WinXP 大获成功,而之后发布的 Vista 不仅大大延期,发布后还差评一片。其实在 XP 和 Vista 之间还有一个被砍掉的操作系统,代号 Longhorn。配合其还准备开发一个叫做 WinFS (Windows Future Storage) 的全新存储系统。

WinFS 看名字就知道被寄托了很大的希望,它的愿景来自于比尔盖茨,要把 WinFS 构建在 SQL Server 上,让 Windows 也能做类似于 AS/400 那样的操作。当然随着 Longhorn 的破产,WinFS 项目也就嘎然而止了。

DBOS 故名思义,基于 DB 的 OS,就是把数据库作为操作系统的底层,这样操作系统就获得了数据库的特性。比如事务性。像下面这个例子是确保一个客户下单流程的事务性,可以处理各种异常情况。

本来在应用层要妥善处理这样涉及多个外部系统的工作流,会非常复杂。也诞生了像 Temporal 这样专门解决这个问题的独角兽公司。除了给操作系统原生的数据库能力之外,DBOS 的另一个目标是做一个云原生的操作系统。现在的操作系统都是面向单机的,然后在应用层用 Kubernetes 把这些单机的操作系统糊在一起。如果我们把分布式,调度直接做到操作系统里的话,就不需要 Kubernetes 了。而分布式,调度这些正是分布式数据库的拿手好戏。


DBOS 这个项目 2022 年就启动了,发起者中也有国人。考虑到 Stonebraker 教授的年龄,这也可能是他生涯最后一战。教授乃是性情中人,当年 NoSQL 风头正劲,大有要灭了关系型数据库的势头。教授实在看不下去,下场写了篇 what goes around comes around (因果报应),给大家好好上了堂数据库历史课。


这次 DBOS 的愿景和商业落地难度还要远超教授之前的 Vertica 和 VoltDB。但作为数据库领域当世第一战神,做就对了!



该文章最后由 阿炯 于 2024-03-19 10:45:39 更新,目前是第 2 版。