五年回顾: Oracle 对 MySQL 的 10 项承诺 ?

jopen 9年前

上周,Oracle收购MySQL五周年纪念日已过。这也意味着Oracle在欧盟委员会关于MySQL用户的臭名昭著的“5年任期10项承诺”到期了。

自从我为另一数据库技术供职后,就很少写MySQL相关问题的博客了(主要是没那么关注MySQL了,也没啥好写的)。但是在2009年,我密切关注欧盟 调查Oracle与SUN的合并,我觉得这个话题我可以写一个回顾。我写回顾博客是因为......我没啥事干了。还有,这些承诺在2015年已经意义不 大了,所以这篇博客的东西跟MySQL当前状态比,更多具有历史性。

供参考:
承诺新闻稿: Oracle对客户、开发商、用户做出承诺
欧盟委员会最终决定合并: Case No COMP/M.5529 – ORACLE/ SUN MICROSYSTEMS

第一件事是: 

既然现在 Oracle 可以对 MySQL 做任何想做的事,它现在是否会杀掉 MySQL?

仅仅认为我们应该把这件事弄清楚,以防你会听到一些人在互联网黑暗的角落里说这样的话。

这很容易回答:不会。为什么?就像你所看到的,这些承诺只是当时的政治公关操作,永远不会对Oracle有约束力,而且你也看到Ocacle已经忽视了这 些承诺的一部分,尽管Oracle遵循这些它们是相当容易的。但是Oracle做的事情是继续开发MySQL并发布出去,你可以容易的看到现在的 MySQL技术相比五年前已经更加成型了。显然,通过了这个特殊时间点对Oracle未来对MySQL的活动没有任何影响,正如过去的一段时间一样。

承诺是怎么来的

在看每个承诺之前,让我们简要地总结他们是怎么来的。

Oracle请求欧盟在2009年12月 10日到11日安排2天的听证会,以便Oracle可以申诉。第一天,Oracle给出几个目击者大多来自大型Oracle客户(有趣的是,他们中的许多 人从来没有亲自使用MySQL,而且都是大型Oracle数据库客户的首席技术执行官)。第二天,所谓的第三方证明或者反对这起收购案。

在12月11日的听证会后,这十个承诺立即被提交欧盟委员会。很可能在听证会之前这些承诺已经被甲骨文写好了。没有书面记录证明,在12月11日之前这种 手段以及承诺的内容已经和Neelie Kroes的核心的团队讨论过,或者他们已经提交给欧盟作为一个“要么接受要么放弃”的傲慢提议。这两点在我看来都是可能的,这是Oracle一贯的风 格。但是看 到一些评论和在12月11日听证会上欧盟职员的肢体语言提示我,他们白天已经知道克罗斯的内阁已决定放弃。

这些承诺是12月14日,Oracle在发布的一篇新闻稿中做出的。同一天,Neelie Kroes发布了步调一致的声明,指出那些承诺是积极的进展。

这是一个不同寻常甚至前所未有的处理合并调查的方法。正常的途径是Oracle承诺一些具体的让步措施,以求通过欧盟的检查和批准(包括一些 来自其他的市场角色的评价:客户和竞争对手)。比如一个正式的协议规定,如果5年内Oracle不遵守这些承诺,将会受到惩罚(比如罚款)。与此相反,这样的一个新闻稿当然是不具有法律约束力的。

然而这篇新闻稿确实有服务于政治目的的元素。它放出了公关烟雾,让Neelie Kroes有个台阶下,因为好像是她迫使Oracle做出这些承诺。然而,最终的胜利者是Oracle,没有以任何形式的让步就获得了Sun 的所有产品,包括MySQL。这是一个典型的布鲁塞尔解决方案,双方都假装他们得到了他们想要的东西。

第十一个承诺

在我提到这个承诺之前还要提一件事。事实上,最重要的承诺并不在这10个里面。它不允许正常的应用程序使用MySQL。

在 整个欧盟的调查,并承诺在条约中的一条,Oracle似乎对MySQL商业模式的基础完全不了解。Oracle的争论自从MySQL开源(更确切的说是 GPL)之后就存在了,所以并不在乎是谁拥有它。所以当欧盟解释他们调查到的欧洲实际用户根本不符合实际。事实上,他们是MySQL客户的原因是因为 MySQL告诉他们,如果不购买商业许可证的话,将会起诉他们(Oracle好战的法律团队的名声使这种情形会更加恶化了)。

直到今天我也没想明白,这个深思熟虑的讯息是基于Oracle这边(假设我们不提它它就不存在),还是由于对MySQL商业模式的无知。也许晚些时 候,如果这个错误的策略是经过深思熟虑的,那它会导致委员会迷惑Oracle对于MySQL的意图。不管Oracle有没有对他们撒谎,在为期6个月的调 查之后,他们仍然没有搞清楚MySQL的商业模式,当然也可以解释为他们抱着取消MySQL的业务的动机。

 在一次听证会上,各方坐下来解决了这个问题。Oracle的 Edvard Screven和 他们雇佣的GPL的法律权威人士Carlo Piana表示,Oracle的立场是一个应用程序只要通过正常的方式使用MySQL(比如用过标准的 JDBC连接)就不会受到任何MySQL的GPL许可证的限制。(注:这就取决每个人对GPL怎么解释的, 对第一个MySQL的拥有者来说第一时间做出一个具有法律约束力的声明证实是最重要的,到那时就会处于MySQL对立的位置。)

正如上面说的,在听证会上声明之前,列出的这10个承诺已经在起草了(而且已经通过了Oracle内部的层层审核)。所以这个最重要的问题甚至不是在这个承诺新闻稿之内的。然而,却记录欧盟委员会的最终决定为第589条。


Oracle是如何实现承诺的


1. 存储引擎API的持续可用性. Oracle应当定期维护和加强MySQL的可拔插存储引擎架构, 让用户可以很灵活的从本地和第三方提供的存储引起中选择.

MySQL的可插拔存储引擎架构指的是MySQL的现行做法: 提供公开可用的, 具有完备文档的应用程序接口, 使得存储引擎提供商可以为MySQL数据库服务器编写"插件". 文档应与当前由Sun提供的文档保持一致.

(请参阅评论#2)


2. 不主张承诺. 作为版权持有人, Oracle会改变Sun的现行策略, 不会声称或者威胁任何第三方提供商必须在GPL下发布其实现的存储引擎, 因为它们实现的应用程序接口已经成为了MySQL可插拔存储引擎架构的一部分.

对于这些实现的应用程序接口已经成为了MySQL可拔插存储引擎架构一部分的第三方提供商, Oracle不会要求其必须具有一份商业许可.

针对当前已具有Sun的商业许可的存储提供商, Oracle会将此承诺放进承诺合同中去.

正如上面所解释的,oracle 大多数已经被误解的原因是普通的mysql用户反对或者担心收购。因此,大的焦点是关注 MySQL 存储引擎的合作伙伴,诚然,谁可能会受到MySQL服务器代码库的GPL许可证的影响-因此大家仿佛都同意。另外,从市场竞争的角度来看,在当时有几个第 三方引擎仿佛对于oracle数据库商业的最高端是个潜在的挑战者,诸如数据仓库或者主动-主动群集。

因此,首先也是3承诺的相关存储引擎供应商所要瞄准的问题。即使这是MySQL的业务极其微小的一部分,这些供应商的这些承诺仿佛相当显著。实质 上,oracle授予了5年可能出现的任何GPL要求的例外,实质上,允许存储引擎合作伙伴,即使停止支付oracle任何东西,如果他们希望这样做。

 

据我所知, Oracle一直秉承自己的承诺. 某种程度上这些承诺也具有法律约束力. 尽管欧盟并非他们的一方, 他们会独立发出书面请求 - 由于前面欧盟批准收购 - 给每个存储引擎伙伴.

在另一方面, 如果我们环顾四周, 也可以观察到这些表面上显著的承诺到底是有多没用. 问题的关键始终在于Oracle成为MySQL所有者这一事实已经足以扼杀新兴存储引擎市场, 即使Oracle并没有弄死MySQL甚至还做出了那么多显著的承诺. 从我们视线中消失的存储引擎包括: Kickfire, Primebase, InfiniDB. 我认为ScaleDB还没有正式死亡, 它还在beta阶段, 就像它2009年时候一样. Infobright还活着, 不过我现在很少听到它的消息了, 它依旧是那么小. 唯一一个看起来还有一些活力的引擎是Tokutek, 它也同时支持MongoDB的生态. (我的理解是这会比MySQL的市场给它们的动力更大, 不过我并没有实际的数据.)


3. 许可承诺. 一旦他们目前的MySQL的OEM协议终止了, Oracle会允许那些现在就拥有Sun的商业许可的存储引擎厂商以相同的条款和条件延长他们的协议不超过2014年12月10日.

针对当前已具有Sun的商业许可的存储提供商, Oracle会将此承诺放进承诺合同中去.

如果第三方存储引擎伙伴们想要继续从Oracle购买商业许可, 他们可以和2009年相同的条件来购买下一个5年. 考虑到价格的增长趋势 - 特别是你被Oracle收购了 - 这是一个显著的承诺.

这个承诺背后有一个非常有趣的故事. 在做出这个承诺后, Oracle随后发现其实Sun为了掩盖它的研发成本已经付钱给某一个第三方存储引擎了. 这样就意味着, 不是要承诺继续保留一定的价格水平付钱给Oracle, 而是看起来Oracle承诺要继续为了一个它们绝对不感兴趣的引擎研究付5年的钱, Oracle已经有了InnoDB, 最受欢迎的MySQL引擎.

Oracle的律师们已经很认真的注意到了这个承诺, 他们继续付了一年的钱给这个完全不必要的研究. 不过, 当下一次在2011年续约的时候, Oracle的律师们很明显的做了改变, 停止了这种无理由的花费行为.

下面你们会看到,我的建议是这些承诺总是他们在并没有了解到实际的MySQL业务情况下临时找人拟的。这种情况很容易证明,Oracle作出这一承 诺,没有意识到MySQL及其存储引擎合作伙伴之间的特殊关系。不过我对Oracle还存有些许敬意并且坚持认可其承诺会去实施,因为这些导致 Oracle又向合作伙伴支付了一年费用。另一方面,我当时想看Oracle继续那些支付整整5年以赢得我的尊重。

这是一个判决么?这其实是一个重大的承诺,并且随后Oracle超过了像我这样的人的预期, 但是如果固执地按照字面意思的话,他们实际上并没有半分百遵循这一条。


4. 承诺在未来遵循GPL并增强MySQL。Oracle将不断完善MySQL并发布新版本,包括版本6,且通过GPL协议获取。在GPL协议下,如果不同时发布新的增强的社区版MySQL,Oracle将不再发布任何新的、修订的企业版MySQL。Oracle将免费公开所有社区版MySQL的源码。

就我自己而言,我从不怀疑Oracle不会继续发布各种社区/GPL版本的MySQL。但是很多人还是担心,毕竟Oracle从Sun得到的其他开源项目 都这样或那样地没有继续下去。因此,在这样的背景下,这是一个重要的提交。加倍承诺公布源代码,这不是GPL的需求——人们也常常忽略这个情况。

这是我喜欢的承诺,因为这包括了发布版本6的提交!这也是一个完全微不足道的提交,你无论发布任何版本,也就是把所需的版本号加上去罢了。

或许有更多任何别的承诺吧,这演示了一个oracle很少如何真正地关心这些承诺。虽然这是事实,oracle在过去五年之内已经持续制造了几个大的 mysql版本。他们并没有真正地刻意去发布版本6!发布了oracle 5.5,5.6和即将到来的5.7版本快照,此版本质量好,并且具有引人注目的一长串功能。但是,没有人记得增加版本号6.0。

5.并非强制性支持。客户并不将要求从oracle购买服务,以此来作为获取MySQL商业许可的条件。

这是一个很奇怪的要求。一个开源公司的整个方向是销售支持。很可能这解决了oracle自身商业模式的一些抱怨,他们每年从他们的客户中提取很高的维护费-oracle税金

我不知道Oracle是否会遵守承诺,或者是否甚至有顾客在没有任何支持下被要求去购买许可。

        6.MySQL的研究与开发的花费在上升。Oracle允诺将给予有效的专款资金用于MySQL的继续开发(在GPL版本和商业版本)。在未来的三年时间 中,Oracle将在MySQL的全球业务中投入更多的精力去研究与开发,直到超过Sun公司被Oracle公司收购之前的近几个财年(2千4百万美元) 在MySQL中投入研究与开发的力度。

补充承诺#4.

据我所知,Oracle中,从事MySQL研究与开发的人数得到增长。特别是问答团队中新加入的人带来了变化。

7.MySQL顾客咨询部,将不迟于周年纪念日后六个月关闭。Oracle将建立一个顾客咨询部,并且为其提供资金,包括特别的关闭用户组并且植入客户,提供引导,反馈MySQL新产品中优先的和其他重要的问题给MySQL用户。

(看解答 #8)


8. MySQL存储引擎厂商咨委会的。
在年会关闭后不超过六个月,Oracle将创建存储引擎厂商咨委会基金,以提供指导对mysql开发的优先顺序并向厂商反馈其他重要问题的。


这两承诺再次向我证明了他们已经匆匆编写,并没有真正知道任何有关MySQL业务人员的参与。(这总是让我困惑当时为什么Oracle会花几个月的时间与欧盟委员会周旋,却没有给予更多的精力影响与人们实际相关的MySQL上。)

当然,实际情况是在2009之前MySQL已经有客户咨委会和一个存储引擎咨委会。然而无知的Oracle提议创建新的咨委会却进一步强调这些承诺只是公关噱头,且由一些不在乎MySQL的人所编写。

我只能假设客户咨询委员会在这5年是持续积极的,当然因为它是MySQL产品管理的基石。

对于存储引擎咨询委员会,我记忆中是这样的:2010是大张旗鼓地举行。在2011并没有发出邀请函,直到Paul McCullagh公开询问这事,同时Oracle也一起跑出了这个疑问。(其实我怀疑Paul只是想去加利福尼亚免费旅行一次,不是吗?)

据我所知在2012和2013年没有召开存储引擎委员会,但后来在2014年, 也就是5年期截止不久前, 突然就召开了. 校正下:每一年我都会收到存储引擎会议召开的通知, 但是宣传比较少(译者注:意思就是第一年大张旗鼓做了很多宣传,结果后来只是简单通知下,很容易让人觉得这会议出现“水”、“开不起来”、“资金问题”、“内部矛盾”等状况,所以就不去参加了)。 这儿有个2013开始的公开引用 但这次我不在了。

所以不管当初把这两个承诺写入的方式是多么愚蠢,Oracle的确100%的做到了它承诺。时间将会告诉我们Oracle对消费者和存储引擎的兴趣是否会在第六年持续下去,尽管它已经完成了这五年的承诺。


9. MySQL参考手册. Oracle将会继续维护,升级和提供免费下载一个质量等同与目前Sun提供的MySQL参考手册

当 Oracle抛出”MySQL是开源的,所以它无关紧要“的论调时,一个针锋相对的观点是“不是任何东西都是开源的”。尤其手册更不是。 Oracle并没有承诺把它开源(这更令人吃惊)而是承诺保持手册的原样。从某种程度上说,这很令像我这样“在另一边”的人感到沮丧(作为数据库市场上的 正式对手,尽管MariaDB在那时候还仅仅是launchpad上的一个fork,我认为我们几乎不能放出几个beta版!),因为这个承诺仅仅意味着 Oracle承诺继续做我们不喜欢的事!新闻稿并没有带来期望的安慰。但是另一方面,MySQL手册现在和过去保持私有当然不是Oracle的错。对于这 个,我们还要感谢Oracle的接管。

oracle一直保持这一承诺。

10.保留客户选择支持。oracle将确保最终用户和嵌入式客户支付MySQL的支持订阅就可以根据他们的爱好在每年或者多年的基础上更新他们的订阅。 

这仿佛对我来说像另外一个奇怪的承诺,增加只是制作列表甚至一个十。但是对于已解决的欧盟委员会来说,可能出现了一些客户的后顾之忧。

这些承诺的地理范围应该是全球性的以及这些承诺将持续,直至交易完成五周年。

祝大家周年快乐!