MySQL 开源到商业(二):开源骇客沦为大厂社畜

前文提到,MySQL AB 接受了 Sun 公司的收购要约,开源骇客 Monty 也同时加入了 Sun 公司。双方对于 MySQL 的开源前景踌躇满志,准备大力投入新一代存储引擎 Maria 的开发,用于取代被 Oracle 收购的 InnoDB 引擎。作为一个芬兰人,Monty 从来没有为钱困扰过,也没有被大公司雇佣过。加入 Sun 公司后,Monty 初来乍到的新鲜感迅速消退,在经历一系列理念上的摩擦后选择了离职。

这篇博客展示了一个开源骇客被金钱“收买”之后的心路历程,多年以后 Monty 才意识到 Sun 的这笔钱也许是他这辈子最大的诅咒。

2008 年 6 月 30 日 Monty 发布了一篇名为“Bringing up the baby”的文章,表达了自己对 Maria 引擎的信心。自从 MySQL 支持 InnoDB 引擎之后,用户逐渐放弃了 Monty 开发的 MyISAM 引擎,变相投入了 Oracle 的怀抱。虽然 InnoDB 引擎的代码也是开源的,但是这让 Monty 如鲠在喉,研发 Maria 引擎来取代 InnoDB 迫在眉睫。在设计上,Maria 引擎修正了 MyISAM 的一系列问题,但是在事务支持和稳定性方面仍然落后于 InnoDB,这使得 Monty 加入 Sun 后继续加班加点。

最后,我们终于完成了 Maria 1.5 的代码,也就是所谓的 MyISAM 安全崩溃版本。请注意,代码完成意味着所有功能都已编码,而不是说代码 100% 没有错误!

代码很快就会出现在您附近的 bzr repo 中。我们还将在短期内(一旦通过所有构建测试)从这里发布 MySQL-5.1-Maria 的正常源代码和二进制版本。

据我们所知,MySQL-5.1-Maria 还存在一些小 Bug,我们将在短期内修复它们,但没有什么可以阻止你测试/使用 Maria。详情请参见源代码版本中的 KNOWN_BUGS.txt 文件。

MySQL-5.1-Maria 当前的发布计划如下:

当前版本将是 alpha 版本。(从技术上讲,它本可以是一个 beta 版本,但由于我们添加了大量新代码,因此我们希望通过发布另一个 alpha 版本来表明这一点)。

如果没有发现需要重新编写代码的重大错误,我们将在下一个版本中修复发现的错误,并发布测试版。希望能在 8 月份完成。

我们将继续每月发布一个测试版,直到不再需要重新设计,新的错误报告减少到最低限度。然后,我们将发布最终 RC 版和 GA 版(假设一切顺利)。

到目前为止,我们已经将 Maira 未解决的 Bug 降到了最低。这一点再加上一个相当大的测试套件,使我们,Maria 团队,有理由相信,在发布 RC 版和 GA 版之前,我们不需要太多的测试版。下载 Maria 进行测试和使用的人越多,它就会越快稳定。请报告您发现的任何错误,我们将尽力修复!

同时,我们正在将 MySQL-5.1-Maria 并入标准的 MySQL-6.0 代码树中,Maria 将成为服务端的核心部分。

下一步是跨入 MySQL-6.0-Maria 代码树,我们将开始努力使Maria完全事务化,并且更加并发。

影响 MySQL-5.1-Maria 的错误当然会在这个代码树中完成修复,然后合并到 MySQL-6.0 和 MySQL-6.0-Maria 代码树中。

有兴趣了解 Maria 现在和未来的更多信息的人,欢迎参加我的 Maria 讲座以及 7 月 24 日在 Oscon 举行的 Maria BOF。

在Oscon会议上,Tim O’Reilly 将对 Brian Aker 和我进行主题采访。我们将尽全力把这次活动办成一次有趣而难忘的盛会!

现在我该去度假了。(其实我早在上周一就计划去了,但我想在去之前完成我在 Maria 项目的那部分工作,现在已经是下周日了…)。至少在接下来的两周里,我可以远离电脑休息休息,因为我在瓦萨的避暑别墅里没有电。

在 2008 年,用户使用的 MySQL 发行版主要来自于三个团队。Monty 负责 Maria 分支,Perter 负责 Percona 分支,Brian 负责 Drizzle。因为这三个分支都能向 MySQL 主干推送代码,因此团队之间维持了很好的竞合关系,在一些重要场合也是相互站台,致力于将 MySQL 生态做大做强。Sun 公司的收购并没有影响这种合作关系。

在过去的两三年里,我和 Brian Aker 就如何重构 MySQL 进行了多次讨论。Brian 一直在推动这些讨论,他问为什么 MySQL 中的某些事情要以某种方式进行,并以一种真正的 "如果 "方式问如果我们以另一种方式做事会发生什么。

由于厌倦了无法在 MySQL 服务端中完成急需的重构工作,Brian 开始开发 Drizzle,以寻找这些问题的答案。

那么,Drizzle 是什么?

  • 如果社区能更多地参与软件本身的设计,并有针对性地进行网站部署,那么 Drizzle 就是 MySQL 的雏形。
  • Drizzle 是由 Brian 和社区推动的 MySQL 版本,试图解决大量 MySQL 用户面临的实际问题。
  • Drizzle 是一个更小、更轻、(希望)更快的 MySQL 版本;Drizzle 社区不想要或不需要的功能已被移除或正在移除(包括存储过程、视图、触发器、授权、某些非插拔存储引擎等)。
  • Drizzle 是 MySQL 服务端代码库的第三个分叉,但(目前)是拥有最多开发人员的分叉。其他两个分叉是:
    • ProvenScaling 在 mirror.provenscaling.com 上的分叉由 Jeremy Cole 提供。您应该阅读 Peter Zaitsev 的相关博客。
    • MySQL-5.1-maria 分叉,由我领导的 Maria 团队提供。(在开放树供外部开发方面,Brian 确实比我们更胜一筹;我们至少还有一个月的时间才能做到)。
  • 有关 Drizzle 的更多信息,请访问 Brian 的博客 http://krow.livejournal.com/。

为什么研究 Drizzle的人对 Drizzle 充满热情?

这是因为 Drizzle 解决了 MySQL 开发多年来遇到的许多问题:

  • 它为社区提供了更开放的 MySQL 开发环境;你不再需要等待数年才能将你的补丁和可行的扩展加入服务端。
  • 存在多年的关键漏洞终于可以得到修复,因为开发工作不再受制于不切实际的发布时间表,这些时间表人为地限制了可以修复的问题。
  • Drizzle 将对一些 MySQL 服务端差异化进行真正的测试;有点像 Fedora 对 RedHat 的测试。
  • Drizzle 在 MySQL 开发者社区中引发了新的兴奋点;很多人似乎都非常热衷于以真正的社区导向方式来开发它。
  • 开发 Drizzle 的开发人员正在对服务端进行大刀阔斧的重构,而这正是 MySQL 多年前就计划要做但从未实现的事情。
  • 开发决策再次由每天使用服务端的人员做出;这将确保 Drizzle 比当前的 MySQL 开发模式更快、更稳定。
  • Drizzle 将以 MySQL 核心用户(网络用户)为目标,这些用户的需求多年来一直被忽视,而 MySQL 核心开发人员却增加了他们不需要的功能。
  • 此外,Drizzle 还将包含最新的 InnoDB 代码;你不必等到 MySQL 6.0,也不必为了访问最新最快的 InnoDB 版本而每年从甲骨文公司下载安装 InnoDB 插件。

尽管如此,Drizzle 并不是来取代普通 MySQL 服务端的;Drizzle 瞄准的是一个有限但重要的市场,因此将帮助我们增强基于 MySQL 的产品。将 Drizzle 视为微内核服务端,围绕它可以开发其他产品/功能。

Drizzle没有发布计划或时间表,但将遵循真正的开源和敏捷方法,即尽早发布、经常发布;Brian 希望在 3-4 个月内推出可用的、相当稳定的 Drizzle 版本,但不做任何承诺。

Drizzle也将为"普通 "MySQL开发人员提供巨大帮助;通过观察 Drizzle 是如何解决问题的,以及不断与 Drizzle 进行基准比较,我们将更深入地了解当前代码库的弱点,并对需要修复的问题有更好的认识;友好的竞争是好事!

Drizzle 是 Sun 收购 MySQL 带来的好处之一。在 Sun 高层管理人员的支持和鼓励下,Brian 一直在开发 Drizzle。我们发现 Sun 是开放和鼓励创新的,这是收购的一个好的方面。

我个人对 Drizzle 的反应是,我对这个 MySQL 领域的新生力量充满热情。我并不完全同意 Drizzle 所做的一切,但大多数事情都很有意义。我期待着就 Drizzle 中的解决方案进行许多非常有趣的讨论,这将有助于改进两个 MySQL 版本。

很快,Monty 发现 Sun 公司的执行动作和自己想要的有很大冲突。多年以来,Monty 一直想要让 MySQL 的开发过程更加面向外部,而 Sun 公司在这方面的动作很慢。终于,在持续了几个月的“斗争”之后,Monty 以一种平和的方式宣布了退出,并表示将在开源领域与 Sun 公司保持良好的合作关系。在后继的博客中,Monty 感谢 Sun 为自己举办了一个盛大的告别晚宴。就像那篇博客的名字一样,Monty 对于 Sun 的认可更多是“thank for all the meat”上,而不是开源理念以及开发模式。

我现在已经离开 Sun,加入了自己的公司 Monty Program Ab。

去年八九月间,关于我辞职的传言甚嚣尘上。当时我并不想对这些传言发表评论,因为我还在努力与 Sun 解决一些问题。现在我终于可以描述一下当时的情况了。

在这种情况下,传言有一定的真实性。我曾告诉管理层,我将立即递交辞呈,因为我坚信 5.1 版本还没有准备好,需要在正式发布之前解决这些问题。这一举动加上其他人的努力,确实收到了预期的效果,我与 Sun 高层管理人员达成协议,不提出辞职,而是再留三个月,帮助 Sun 解决 MySQL 开发中的问题,同时也让 Sun 有机会为我在 Sun 内部创造一个最佳角色。

三个月的时间确实延长到了七个月,而我原本希望 Sun 公司能对 MySQL 数据库部门进行改革,以解决我们的开发和社区问题,但改革的速度不够快。

最后,我和 Sun 公司都认为,我在 Sun 公司之外实现目标的机会要大得多,所以最好还是吞下苦果,出去闯一闯。我们是在良好的条件下分手的,我们都希望能继续开展业务和合作。

离开的主要原因是我对 MySQL 服务端的开发方式不满意,这一点可以从我之前的博文中看出。我尤其希望服务端的开发能转移到一个真正开放的开发环境中,这样既能鼓励外部参与,又不需要对源代码进行区分。Sun 公司一直在考虑开放服务端开发,但步伐太慢。

我仍然认为,Sun 是 MySQL 的最佳买家,我对双方未能成功合作感到遗憾。Sun 有很多好事要做,我希望他们能继续走创建和推广开放源码的道路。我将帮助 Sun 实现开源领域的目标。

那么,我和 Monty Program Ab 将做些什么呢?

Monty Program Ab 将是一家真正的开源公司,其附加目标是成为一家小型的家庭型公司(10-30 名员工),在这里每个人都可以成为公司的主人,我们关心我们的员工,努力共同享受乐趣,分享我们创造的利润。欲了解更多信息,请访问:http://zak.greant.com/hacking-business-models。

Maria 团队的部分成员将跟随我,部分成员则将留在 Sun。我们的计划是,或多或少像以前一样继续开展 Maria 项目。与之前的主要区别是,Maria 项目及其邮件列表将转移到 launchpad,我们将开始使用 free-node 进行 IRC 通信(频道 #maria)。Maria 1.5(MyISAM 的崩溃安全版本)现已进入测试阶段,我们希望能尽快发布二进制文件。我们已经开始着手开发 Maria 2.0 功能(完整事务版本)和性能问题。从我的角度看,Maria 的开发工作将略有延迟(最终版本将延迟一到两个月),因为我必须将新公司完全准备好。

Monty Program Ab 将与 MySQL 社区积极合作,为 MySQL-5.1-Maria 代码树提供稳定的补丁,并围绕该代码树创建一个活跃的社区。我们还将对 MySQL 代码进行一些重组,使其更简单、更快速、错误更少。

我们不应该把 MySQL-Maria 代码树看作是一个分叉,而应该看作是一个分支,因为我们打算把官方树上的所有改动都拉到 MySQL-Maria 分支上;有些改动可能会被重新修改,但我们会尽最大努力确保最终用户看起来和感觉上都是一样的。

Monty Program Ab 还将在 MySQL 和 Maria 上为客户做 NRE(非经常性工程),并把这些工作放到 MySQL-Maria代码树中: 如果您希望在 MySQL 服务端中完成、修复或更改某些内容,请通过 "monty at askmonty.org "与我联系,以获取报价)。

此外,我将继续与从事开源和社区产品的颠覆性技术创业公司合作,并对其进行投资。(另一个无耻的宣传:如果你认为自己在开源领域有独特的商业想法,请通过 "monty at openoceancapital.com "与我联系!)。

我还在筹建一家新型餐厅,利用数据库为顾客提供更好的体验。(数据库开发人员可享受特别折扣!)。更多信息请稍后了解…

想要更了解我的工作内容,请访问 http://www.askmonty.org 或 http://www.openoceancapital.com

(请注意,上述网站在未来几周内将处于建设中)

在这个时候,Monty 依旧认为将 MySQL AB 卖给 Sun 公司是一个正确的决定,自己能够从外部公司的角度帮助 MySQL 继续发展。然而,他并没有意识到将 MySQL 的知识产权转交给 Sun 公司会有什么样的后果。Sun 公司的财务状况在持续恶化,很快就要做出一个意料之外的决定。这个决定直接影响了整个 MySQL 生态的走向,并导致了 Monty 开源理念的“黑化”

后面发生了什么?请关注:MySQL 开源到商业(三):霸道总裁强抢民女

博客原文链接:

https://monty-says.blogspot.com/2008/06/bringing-up-baby.html

https://monty-says.blogspot.com/2008/07/what-if.html

https://monty-says.blogspot.com/2009/02/time-to-move-on.html

End

KubeBlocks 已发布 v0.8.0(KubeBlocks v0.8.0 发布!Component API 让数据库引擎组装更简单!)!KubeBlocks v0.8.0 推出了 Component API,让数据库引擎的组装变得更加简单。Addon 机制也有了重大改进,数据库引擎的 helm chart 从 KubeBlocks repo 中拆分出去,从此数据库引擎或者版本的变动已与 KubeBlocks 发版解绑。v0.8.0 还支持多版本的数据库引擎定义。Pika、ClickHouse、OceanBase、MySQL、PostgreSQL、Redis 等均有功能更新,快来试试看!

小猿姐诚邀各位体验 KubeBlocks,也欢迎您成为产品的使用者和项目的贡献者。跟我们一起构建云原生数据基础设施吧!

💻 官网: www.kubeblocks.io

🌟 GitHub: https://github.com/apecloud/kubeblocks

🚀 Get started: https://kubeblocks.io/docs/preview/user_docs/try-out-on-playground/try-kubeblocks-on-your-laptop

关注小猿姐,一起学习更多云原生技术干货。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/828538.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode - LCR 179.查找总价格为目标值的两个商品

一. 题目链接 LeetCode - LCR 179. 查找总价格为目标值的两个商品 解法(双指针 - 对撞指针): 算法思路: 注意到本题是升序的数组,因此可以用「对撞指针」优化时间复杂度。 算法流程: 初始化left &#…

如何快速申请SSL证书实现HTTPS访问?

申请SSL证书最简单的方法通常涉及以下几个步骤,尽量简化了操作流程和所需专业知识: 步骤一:选择适合的SSL证书类型 根据您的网站需求,选择最基础的域名验证型(DV SSL)证书,它通常只需验证域名所…

【以奖代补】诗情画意润童心 书香课堂志愿行

中华古诗词历史源远流长,名篇佳作数不胜数。为弘扬民族文化精髓,丰富乡村儿童假期生活。2024年4月21日上午,襄州区社会工作者协会联合襄州区张家集镇社工站、张集村“童叟乐园”志愿服务队在张集村开展“诗情画意润童心 书香课堂志愿行”志愿…

JavaSE:抽象

一,抽象是什么,抽象和面向对象有什么关系 抽象,个人理解,就是抽象的意思 我们都知道面向对象的四大特征:封装,继承,多态,抽象 为什么抽象是面向对象的特征之一,抽象和面…

【ESP32入门实战】初识ESP32

【ESP32入门实战】初识ESP32 文章目录 【ESP32入门实战】初识ESP32👨‍🏫前言【写作缘由】🧑‍🎓ESP32介绍👩‍💻ESP32-WROOM-32👩‍💻ESP32的组成部分 👨‍&#x1f3eb…

记内网http洪水攻击,导致网页无法访问一事

事由 最近两日,部分同事在访问税纪云平台时,登录跳转页面频繁转圈、要么就是出现无法连接的错误提示。 无法访问此页面 已重置连接。 请尝试: 检查连接检查代理和防火墙运行 Windows 网络诊断经过以下几方面的排查,无果。 后续通过检查…

4月23号总结

java实现发送邮件 在做聊天室项目的时候&#xff0c;由于需要发送邮箱验证码&#xff0c;所以自己查找了这方面的内容。 首先需要在Maven里面依赖 <dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><versio…

冯喜运:4.25黄金原油上演过山车走势附操作建议

【黄金消息面分析】&#xff1a;周四&#xff08;4月25日&#xff09;亚洲时段&#xff0c;现货黄金窄幅震荡&#xff0c;目前交投于2320美元/盎司附近。金价周三企稳在2300关口上方&#xff0c;收报2315.80美元/盎司&#xff0c;中东紧张局势导致的风险溢价有所缓和&#xff0…

数据类型与变量(Java)

数据类型与变量&#xff08;Java&#xff09; 字面常量数据类型变量变量概念整型变量整型变量长整型变量短整型变量字节型变量 浮点型变量双精度浮点型单精度浮点型 字符型变量布尔型变量类型转换自动类型转换(隐式)强制类型转换(显式) 类型提升 字面常量 常量&#xff1a;常量…

AI预测体彩排列3第2套算法实战化测试第3弹2024年4月25日第3次测试

今天继续进行新算法的测试&#xff0c;今天是第3次测试。好了&#xff0c;废话不多说了&#xff0c;直接上图上结果。 2024年4月25日体彩排3预测结果 6码定位方案如下&#xff1a; 百位&#xff1a;4、5、3、6、1、0 十位&#xff1a;6、5、4、3、1、0 个位&#xff1a;6、2、7…

24二战上岸北邮计算机经验贴(初试+复试超详细)

个人情况介绍 我本科就读于南方的一所211&#xff0c;学的专业是网络工程。学习成绩在班级里是中等水平&#xff0c;挂了两门课。之前专业课学得不仔细&#xff0c;因此考研备考相当于在学新知识。我是二战上岸的&#xff0c;两次都是报考的是北邮计算机科学与技术&#xff08…

ASP.NET基于WEB的选课系统

摘要 设计本系统的目的是对选课信息进行管理。学生选课系统维护模块主要完成的是系统管理与维护功能。课题研究过程中&#xff0c;首先对系统管理模块进行了详尽的需求分析&#xff0c;经分析得到系统管理模块主要完成如下的功能&#xff1a;用户基本信息、选课信息的录入,查看…

【图论 单源最短路】100276. 最短路径中的边

本文时间知识点 单源最短路 图论知识汇总 LeetCode100276. 最短路径中的边 给你一个 n 个节点的无向带权图&#xff0c;节点编号为 0 到 n - 1 。图中总共有 m 条边&#xff0c;用二维数组 edges 表示&#xff0c;其中 edges[i] [ai, bi, wi] 表示节点 ai 和 bi 之间有一条…

Visual Studio调试C/C++指南

1. 前言 Visual Studio&#xff08;VS&#xff09;是微软开发的一款集成开发环境(IDE)软件&#xff0c;支持C/C、C#、VB、Python等开发语言&#xff0c;开发桌面、Web等应用程序。VS功能极其强大&#xff0c;使用极其便利&#xff0c;用户数量最多&#xff0c;被誉为"宇宙…

JDK的安装和配置

这里写自定义目录标题 1.Java 开发工具包在上方已关联资源下载使用2.JAVA_HOME3.CLASSPATH4.PATH5.包内含有visualvm 1.Java 开发工具包在上方已关联资源下载使用 2.JAVA_HOME JAVA_HOME C:\Program Files\Java\jdk1.8.0_1313.CLASSPATH CLASSPATH .;%JAVA_HOME%\lib\dt.jar…

5月计算机各省报名时间汇总报名流程

&#x1f4e3;5月有5省可进行计算机报名 天津&#xff1a;5月6日-5月10日 福建&#xff1a;5月6日9:00-5月12日17:00 广西&#xff1a;5月6日9:00-5月12日23:55 重庆&#xff1a;5月6日9:00-5月12日24:00 西藏&#xff1a;预计5月6日-12日 &#x1f50d;计算机等级考试报…

花粉过敏人群或超2亿?约克VRF中央空调助你健康鲜呼吸

“一朝春雨落,十里桃花开”,暖春、微风、阳光、花香……充满着生机的春天让人心情愉悦,然而对于易过敏人群来说却是“苦不堪言”,经常出现眼圈发红、发痒、睁不开,每天都在“流泪”中度过,同时伴随着咳嗽、打喷嚏、流鼻涕、鼻塞等症状,皮肤也可能会出现红疹、瘙痒等症状。 如何…

在Linux安装mysql

由于大多数开发&#xff0c;测试活动都是在linux中进行的&#xff0c;所以建议先学linux&#xff0c;可以看看下面这个文章&#xff1a; Linux命令超详细介绍-CSDN博客 1、先去下载mysql的linux安装包&#xff1a;MySQL :: Download MySQL Community Server (Archived Versio…

第十五届蓝桥杯省赛第二场C/C++B组G题【最强小队】题解

20pts 枚举所有可能的左端点、右端点&#xff0c;时间复杂度 O ( n 2 ) O(n^2) O(n2)。 对于每个区间进行遍历检测&#xff0c;时间复杂度 O ( n 3 ) O(n^3) O(n3)。 100pts 由于数据范围为 1 0 5 10^5 105&#xff0c;所以肯定只能进行一次枚举。 我们尝试枚举右端点&…

中小型企业网络实战topo

1、设备命名&#xff0c;务必按照规范进行命名规划&#xff1b; 2、子网划分&#xff0c;申请到了公网地址段&#xff0c;201.1.1.0/24&#xff0c;根据公司的实际情况&#xff0c;合理规划拓扑需要的公网地址&#xff0c; 做到合理规划不浪费&#xff1b; 3、子网划分&a…