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

openkk 12年前
     <p> 【<strong>导读</strong>】</p>    <p> 2012年 2 月 23 日,甲骨文公司联合上海爱可生信息技术有限公司,于上海举办的 MySQL 创新技术大会上宣布 MySQL 5.6 企业版本的开发蓝图,并且 MySQL 官方网站提前一天公布停止更新 MySQL 5.1 版本的计划,以及会议现场嘉宾分享与问答交流的信息,越来越使我们意识到 MySQL 数据库产品,将会因甲骨文公司的市场战略需要,而重新走向另外一个 MySQL 用户不太乐意看见的方向。</p>    <p><strong> (一)   </strong><strong>信息梳理</strong></p>    <ol>     <li><strong>甲骨文</strong>于 2005 年 10 月份收购 InnoDB 存储引擎开发商芬兰公司 Innobase;</li>     <li><strong>SUN</strong>于 2008 年 1 月份收购 MySQL AB 公司;</li>     <li><strong>甲骨文</strong>于 2009 年 4 月份收购 SUN 公司及其子公司的全部资产;</li>    </ol>    <p> MySQL AB 公司曾经希望能够收购 InnoDB 存储引擎开发商 Innobase 公司,并且一直有谈判接触,只是没有谈妥而已,MySQL AB 公司与 Innobase 公司也是有签署战略合作协议。随着开源 MySQL 数据库产品对 Oracle 等商业数据库产品的冲击越来越大,尤其是 InnoDB 存储引擎完整优越地支持事务和细粒度的锁,能解决大数据量存储和高并发的访问请求,而 MySQL 支持的其他存储引擎并不能很好解决事务、细粒度锁等技术难题,使甲骨文公司感受到 InnoDB 存储引擎带来的威胁,只要控制 MySQL 数据库产品的 InnoDB 存储引擎,就等于掐断 MySQL 数据库产品的竞争力,从而达到控制开源 MySQL 数据库产品对 Oracle 数据库产品的冲击,这一招真是釜底抽薪,同时还可以在开源市场上提前布局和分一杯羹。</p>    <p> 自从甲骨文公司收购 Innobase 公司之后,甲骨文公司主席 Charles Phillips 曾明确表示会支持开源数据库产品的发展,但是 InnoDB 存储引擎的研发与升级一直无进展,后还准备变更 Innobase 公司先前与 MySQL AB 公司签署的合作协议,幸运的是合同还需要好几年到期。</p>    <p> SUN 收购 MySQL AB 公司,当时几乎被所有人看好,甚至开源领域的人士认为开源产品的春天即将到来。对于我们 MySQL 开源数据库产品的使用者与爱好者而言,认为 SUN 公司拥有编程开发软件、操作系统、硬件等,可以完美地整合成一套健全的解决方案,同时可以使生产线上的产品发挥最大优势,对 MySQL 数据库产品的改进与性能提升、推广等带来极大的帮助。可惜世事难料,随后美国发生次贷危机,把全球都带入经济危机中,SUN 对 MySQL AB 公司的整合也出现一些裂痕,同时 SUN 公司也出现财务危机和产品市场占有率下降严重,一场美好的梦就此破灭。</p>    <p> SUN 公司高层把 SUN 出售给 IBM 最大的竞争对手之一甲骨文,通过收购 SUN 使甲骨文公司迅速实现几个目标:</p>    <ol>     <li>硬件研发团队和研发技术,以及获得大批 SUN 硬件产品消费的客户资源;</li>     <li>大量的技术专利权;</li>     <li>企业解决方案与技术;</li>     <li>拥有程序员人数众多,使用范围广泛的编程语言开发工具 JAVA;</li>     <li>操作系统 Solaris,而且 Oracle 数据库产品跑在 Solaris 是性能最佳的,并且可以加速优化 Oracle 数据库的性能;</li>     <li>能帮助甲骨文更好地服务现有的企业客户,并且能给出一整套的解决方案资源;</li>     <li>可以完全控制开源 MySQL 数据库产品的研发速度与发展势头,减少对其商业 Oracle 数据库产品的冲击,尤其是在中国等新型市场;</li>    </ol>    <p> 小道消息得知甲骨文可能要收购 SUN 的时候,MySQL 圈及技术圈就开始担心其未来的命运走势,不得不感谢欧盟对 MySQL 数据库产品的支持,以及 MySQL AB 公司创始人、前雇员和开源社区贡献者,纷纷要求甲骨文公司作出承诺,才批准甲骨文收购 SUN,反观我们国内的技术人却什么也做不了,我们的国家好像跟此事情无关一样也是啥也不去做,顿时感受到作为某国公民的无奈。</p>    <p> 各大新闻媒体、电视和网站报道,甲骨文公司正式宣布 74 亿美元收购 SUN 的消息,MySQL 数据库使用者与技术圈内的朋友,分析 SUN 收购 MySQL AB 公司 1 年多点,紧接着甲骨文又收购 SUN(备注:虽然次贷危机爆发,也不至于 SUN 这样大手笔 10 亿美元收购 MySQL AB 公司之后,以及出现大的财务危机),总觉得 SUN 当初收购 MySQL AB 公司是甲骨文背后支持与指使的行为。</p>    <p><strong> (二)   </strong><strong>MySQL</strong><strong>数据库产品原本发展方向</strong></p>    <p> 众所诸知 MySQL 数据库产品之所发展迅猛,主要原因是:</p>    <ol>     <li>MySQL AB 公司对 MySQL 数据库采用开放源码的策略;</li>     <li>允许遵守 GPL 协议前提下,可免费使用 MySQL 数据库产品;</li>     <li>第三方公司可以开发自己的数据存储引擎,并且挂载到 MySQL 中,带动一批第三软件开发公司的成长;</li>     <li>全世界的技术爱好者,都可以向 MySQL AB 公司提出合理的开发需求,并且参与 MySQL 数据库产品的研发过程;</li>     <li>MySQL 数据库产品非常容易让技术工作者上手,并且能满足互联网企业的业务需求;</li>     <li>MySQL 数据库产品的轻型、稳定、高效,并且能很好地运行在硬件条件交差的 PC Server 上,这四个热点解决了互联网企业的困境;</li>    </ol>    <p> 分析完上述促使 MySQL 数据库能获得企业和技术人员青睐的因素,随着互联网行业发展、企业业务发展与数据量的增长,以及 IT 技术的革新,硬件处理能力的高速发展,企业业务的复杂度增加和堆数据处理速度的要求等综合因数,会使我们发现 MySQL 数据库的处理能力越来越捉襟见肘,无法充分利用 PC Server 的硬件资源,为此 MySQL 数据库的实现技术与算法必须进行革新,尤其底层的实现代码必须考虑进行优化与重写,为此 MySQL 技术研发团队原本应该要做的事情,大致罗列如下:</p>    <ol>     <li>修复 MySQL 积累的 BUG 与缺陷;</li>     <li>继续修改 MySQL 底层源码,正式支持 SMP 架构;</li>     <li>修改查询优化器的算法;</li>     <li>修改 MySQL 在线 DDL 操作实现的算法;</li>     <li>增强 MySQL 数据库的 JOIN 连接操作的算法支持,比如增加 HASH 算法、排序合并算法;</li>     <li>增强 MySQL 复制的数据安全性与恢复线程并发的支持;</li>     <li>增加 MySQL 对多主复制的支持;</li>     <li>修改 MySQL Cluster 的 NDB 存储引擎,更好地实现 Cluster 的业务模型与提高 NDB 存储引擎的性能;</li>     <li>开发新的存储引擎替代 InnoDB 存储引擎,或基于 MyISAM 存储引擎基础上开发一个新的类似 InnoDB 的存储引擎,以摆脱甲骨文公司的制约;</li>     <li>. ……………………..</li>    </ol>    <p> MySQL 技术研发团队也确实做了很多事情,为此 MySQL AB 公司把 MySQL 数据库的研发,分成几个分支版本进行发展:</p>    <ol>     <li>MySQL 6.0:主推 NDB 存储引擎,提高分布式数据库的性能与功能改进;</li>     <li>MySQL 5.1: 基于 MySQL 5.0 的基础之上,继续完善 MySQL 数据库的功能,以及改善 MySQL 数据库对 SMP 架构的支持特性等;</li>     <li>MySQL 5.5:重新改写 MySQL 底层源码,以适应新的硬件环境,处理高并发大规模数据容量且业务场景负责的问题,以及支持新研发的多种存储引擎;</li>    </ol>    <p> 非常遗憾的是连续被并购与资源整合,导致技术研发团队的开发任务进度中断和新存储引擎的研发项目夭折,以及 MySQL AB 公司技术团队研发人才流失严重,尤其公司创始人与管理层人员的出走,也制约研发项目的进展与质量保证。</p>    <p><strong> (三)   </strong><strong>甲骨文公司战略主导下的 MySQL</strong><strong>数据库产品方向</strong></p>    <p> 通过 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 的发展与资源投入,他无奈地说:他们是和尚,只管念经不问俗事,发布会之后私底下也有一番沟通与探讨,明显感觉到甲骨文公司高层也非常困惑,大致有以下几点:</p>    <ol>     <li>甲骨文公司并不想投入很多资源与精力,重点发展 MySQL 数据库产品;</li>     <li>有技术社区的支持,MySQL 数据库产品的研发能力与速度会使 MySQL 数据库产品越来越优秀;</li>     <li>MySQL 数据库产品对甲骨文的 Oracle 数据库市场冲击越来越大;</li>     <li>甲骨文公司收购 SUN 之后,大量原 MySQL AB 公司的雇员离职,创办自己的公司,并从事 MySQL 数据库产品的技术研发与服务提供;</li>     <li>甲骨文公司不发展 MySQL 数据库产品,但是其他第三方公司研发的 MySQL 数据库产品越来越好,将不久取代 MySQL AB 公司在开源领域的地位;</li>     <li>甲骨文公司收购 SUN 时,曾经对欧盟、MySQL AB 公司、开源社区等作出过承诺,也不能完全失信于人,否则可能给自己开拓市场带来负面影响;</li>    </ol>    <p> 自从甲骨文决定继续投入资源发展 MySQL 数据库产品,可以逐渐清晰甲骨文公司对 MySQL 数据库产品的重新市场定位与战略规划。MySQL AB 公司长期以来,都不重视对 Windows 平台的支持,我们大家可以发现 MySQL 5.5 之前的所有版本,同一版本号的 MySQL 产品运行在 Windows 平台和 Linux 平台之间一对比,会发现 Windows 平台的性能远远低于其他平台,Windows 平台上 MySQL 数据库产品 BUG 众多,MySQL 数据库修复的 BUG List 中几乎很少提到针对 Windows 平台的修复信息。</p>    <p> MySQL 数据库主要是运行在 Linux 或类 Linux 操作系统(注:少量运行在 Solaris 系统上)之上,而大量企业的 Oracle 数据库是运行在 AIX、Solaris、Linux 系统之上,若是把 Oracle 数据库支持的数据服务,迁移到 MySQL 数据库平台上, 那么可以节约大量资金,大致如下:</p>    <ol>     <li>Oracle 数据库的 License 费用可以全免或大规模降低(注:MySQL 数据库是社区版本免费,企业版本收费);</li>     <li>Oracle 数据库产品多数搭配存储设备与小鸡一起使用,而 MySQL 数据库主要运行在廉价的 PC Server 上,可以为企业节约大量资金投入;</li>     <li>Oracle 数据库运行在 AIX、Solaris(注:分社区与企业,社区要差很多)收费操作系统上,且搭配存储设备使用,主要是能更好发挥 Oracle 数据库的性能,使用 MySQL 之后也可以减少部分费用(注:多数跑在开源的 Linux 系统之上);</li>     <li>Oracle 数据库产品支持的多数业务,可以使用 MySQL 搭配 InnoDB 存储引擎的模式替换;</li>     <li>Oracle 数据库产品的 License 费用、运行的设备与系统等,不利于企业花费较少费用就能处理互联网行业大数据量的要求,也即不得不花费更多的钱购买存储设备与购买 License 费用,否则对数据进行拆分存储无法推荐,然后 MySQL 却有天然的优势;</li>     <li>MySQL 数据库产品对开发人员要求不高,学习成本非常低,且 MySQL 数据库技术使用人群越来越多,数据库解决方案也越来越成熟;</li>    </ol>    <p> 上述 6 点,以及 MySQL 数据库产品对 Windows 平台支持不重视,导致 MySQL 数据库产品主要是取代 Oracle 数据库产品的市场份额,为此甲骨文公司决定投入大量资源改进 MySQL 数据库对 Windows 平台的支持,同时大力发展 MySQL 数据库维护的图形化工具,以帮助使用 Windows 平台的企业和技术人员,放弃 SQL Server 数据库产品之后,降低学习成本,从而更加符合和吸引 Windows 平台的企业和技术人员。甲骨文公司投入大量资源之后,MySQL 数据库产品修复大量 Windosw 平台上的 BUG,大幅提升了 Windows 平台上运行的性能(注:确实可以用提升 100 倍以上形容),通过这一系列的投入与市场宣传推广,甲骨文公司可以达到不失信于人,继续发展与巩固 MySQL 数据库产品的地位,同时把 MySQL 数据库产品占领市场的战场正式引向竞争对手之一—微软的 SQL Server 数据库产品,部分减轻 MySQL 数据库产品对 Oracle 数据库的冲击,属于一举多得的战略行为。</p>    <p><strong> (四)   </strong><strong>担忧</strong></p>    <p> 1) 技术研发人员分散</p>    <p> MySQL 数据库属于甲骨文资产之后,MySQL AB 创始人接二连三出走,以及产品研发团队出现大批技术人员的离职,多数离职之后创办自己的公司,欣慰的是继续投入开源 MySQL 数据库领域,只是他们有些人对 MySQL 进行裁剪后独立发展,例如: SkySQL 等,有些是研发新的存储引擎,例如 Percona、MariaDB….这样会导致 MySQL 开源领域的研发技术实力分散,不利于促进 MySQL 数据库的功能完善与技术革新,毕竟早期开发的 MySQL 版本主要是跑在价格低廉,性能一般的 PC Server 上,但是近几年 PC Server 的硬件处理能力得到飞速发展,甚至现在的 PC Server 比抵挡存储设备的性能优越。MySQL 数据库产品必须加快速度,改写源码实现对 PC Server 的 SMP 架构支持,对 SSD 硬盘等新型技术的支持,现阶段 SSD 硬盘越来越接近生产环境的要求,性价比也越来越有竞争优势,为此非常担心 MySQL 数据库产品错过美好的发展时机,而无法完善自己的产品功能、快速提升处理能力、提高产品的稳定性等。</p>    <p> 2)甲骨文公司的资源投入</p>    <p> 相信随着 PC Server 处理能力的提高和 SSD 硬盘等硬件的快速发展,MySQL 数据库产品的功能完善、性能和稳定性提高,对 Oracle 数据库产品的冲击会加剧, 并且可能渗透到对数据库要求更高的领域,恰恰又是 Oracle 数据库产品的主要市场与收入来源。虽然 MySQL 数据库产品得到发展,甲骨文公司从 MySQL 数据库产品上获得的收益未必会大幅增加,甚至继续出现投入产出负比例的情况,甲骨文公司除继续保持 MySQL 数据库企业版本闭源,与不向社区提供源码贡献的策略之外,还可能减少投入与限制 MySQL 数据库社区版本的发展,本身企业版本不向社区版本贡献源码的做法,时间越久越可能出现社区版本落后于企业版本的情况。</p>    <p> 甲骨文公司寄希望于 MySQL 数据库产品,能够抢占微软 SQL Server 数据库产品的市场份额,然后多数中小企业都是使用盗版的 Windows 操作系统与盗版的 SQL Server 数据库产品,可能只有部分企业才会考虑把 SQL Server 数据库的数据迁移到 MySQL 数据库中。另外,甲骨文公司与合作伙伴(例如:国内的爱可生)想把 MySQL 数据库产品打入传统的生产制造企业市场,2-3年内可能非常难取得突破性进展,大致的原因:</p>    <ol>     <li>中小型生产制造型企业本身就可能使用盗版的 SQL Server 数据库产品;</li>     <li>中小型生产制造企业没有维护 MySQL 数据库的技术人员,也不太会为此投入更多资金;</li>     <li>生产制造企业对系统稳定性的要求非常高,比互联网行业更高;</li>     <li>生产制造企业投入到软件系统的资金与费用是可控与有付费对象的,没有必要为了不一定省钱的技术革新行为而换数据库产品</li>     <li>全球的经济不景气,生产制造企业受伤害最大,更没有精力投入到系统的数据库产品更换一事上;</li>     <li>生产制造企业的系统,一般都是采购第三方公司的产品,且稳定运行之后,很少出现大的改动或更新,为此不可能为了一点点利益而冒风险更换数据库产品;</li>    </ol>    <p> 3) MySQL 数据库产品成为甲骨文公司攻击 SQL Server 数据库的工具</p>    <p> 前面已经阐述过,甲骨文公司为何要发展 MySQL 数据库对 Windows 系统的支持,就是希望利用 MySQL 数据库产品抢占 SQL Server 数据库的市场份额,为此可能出现甲骨文大力度优先发展 Windows 平台的 MySQL 数据库产品和图形化维护管理工具性软件,而忽略其他平台的 MySQL 数据库产品技术革新与发展,从而错过美好的发展时机。MySQL 数据库产品是基于 GPL 协议的,但是可能存在一些技术专利侵犯到其他数据库厂商的利益,包过微软公司,为此可能导致微软公司向甲骨文公司提出专利诉讼,从而也会间接限制 MySQL 数据库产品发展。</p>    <p> 4) MySQL 数据库变得越来越臃肿</p>    <p> 甲骨文要想让 MySQL 数据库产品抢占 SQL Server 数据库产品的市场份额,必然会为 MySQL 数据库产品添加非常多,类似于 SQL Server 数据库产品的功能,再加入一些其他热门技术产品方向的支持,例如对 NoSQL、MemCached 等支持,从 MySQL 5.6 版本公开的开发任务列表也可以佐证,这样必然会使 MySQL 数据库产品越来越臃肿,从而失去 MySQL 数据库产品的三个特点:<strong>轻、快、稳</strong>,也即数据库功能不复杂且满足多数业务需求,数据和业务处理的性能非常优越,数据库服务器运行稳定,这三个特点也是 MySQL 数据库获得互联网企业和技术人员青睐的重要原因之一。</p>    <p> 【<strong>结束语</strong>】</p>    <p> 撰写此文目的是希望能引起更多技术人员及企业,对 MySQL 数据库产品发展的关注,也相信 MySQL 数据库产品应用的前景会越来越大,但是我们要监督甲骨文公司对 MySQL 数据库研发资源的投入与产品发展方向的关注。对于很多 MySQL 使用者最关心的问题,甲骨文是否会对 MySQL 数据库社区版本也进行闭源,也即可能是关闭 MySQL 社区的担忧,这是无需担忧的事情,MySQL 数据库是基于 GPL 协议的,所以甲骨文公司无法单方面作出此决定。考虑到甲骨文公司因市场战略需要,而导致 MySQL 产品向我们大家不希望的方向发展,同时多关注第三研发公司的 MySQL 版本,尤其推荐 MariaDB、Percona。</p>    <div id="come_from">     来自:     <a id="link_source2" href="/misc/goto?guid=4958331701364758748" target="_blank">www.mysqlops.com</a>    </div>