FOSDEM 2020:一些回忆与待办事项

FOSDEM 给予能量。FOSDEM 带来想法。FOSDEM 开启机遇,FOSDEM 让你与老朋友和同事联络。因此,MariaDB Foundation 参加 FOSDEM 以推广开源并拉近与社区的距离也就不足为奇了。

从与欧洲议会成员 Nils Torvalds 的 FOSDEM 前晚餐开始,到开源女神 Danese Cooper 关于“开源即艺术”的主题演讲,再到周六的 MySQL, MariaDB and Friends Devroom 和周日的 MariaDB Day,最后以周一的 OpenForum Europe 会议结束,我上个周末充满了关于开源的会面、讨论和想法。
什么是 FOSDEM?
对于不了解 FOSDEM 的人来说,它可能是全球最大的自由及开源软件开发者聚会。而且不是在 Carlsberg 啤酒的意义上;这里的“可能”确实有一些科学严谨性。这是以 FOSDEM(自由及开源开发者欧洲会议)为名举办的第 20 届活动,在布鲁塞尔自由大学(Université Libre de Bruxelles)举办的免费活动吸引了数千名开发者,会议室座无虚席。

与 Torvalds 共进晚餐
对于 MariaDB Foundation 团队来说,周五有两场晚餐。一场主要是为周六 MySQL, MariaDB and Friends Devroom 的参会者准备的,另一场主要为芬兰来的参会者准备——由前 MariaDB Foundation CEO Otto Kekäläinen 组织。选择后者的人可以夸耀他们那句“和 MySQL 和 MariaDB 的创始人 [显然是 Michael ‘Monty’ Widenius] 以及 Linux 创始人的创始人共进晚餐”。欧洲议会成员 Nils Torvalds 在 Kabuki 餐厅拍了一张我们的全景照片,并发送给了他的儿子 Linus。当每个人介绍自己以及在 FOSS 中的角色时,他也引来了不少笑声。他说了什么?“我叫 Nils Torvalds,我在创建开源软件中的角色主要是生理方面的”。

老 Torvalds 之前从未参加过 FOSDEM,但晚餐和 Otto 的说服力让他深受启发,他很快就在周六早早来到了 FOSDEM。
Danese Cooper 的长期视角主题演讲
周六从沉浸在积极的混乱中开始,穿过人群寻找该去哪里。我的 MariaDB Foundation 小团队很早就到了,可以听一场最早的主题演讲。碰巧我们选了 K 楼的一个房间,原来是开源界元老、前 Sun Microsystems 同事 Danese Cooper 关于“开源即艺术”的演讲。她指出“开源已经获胜”,并将此置于过去三十年的期望视角下——并非所有期望都已实现。在她举手示意时,她并没有追溯到那么久远:“你们有多少人至少参与开源 5 年了?”……“10 年”……“15 年”……“20 年”。我全程都举着手,但如果她问 25 年,那就不是了。在 MariaDB 团队中,只有 Monty 和 MySQL 联合创始人 David Axmark 在那时就已参与。

Peter Zaitsev 对 MySQL 8 与 MariaDB 10.4 的比较
MySQL, MariaDB and Friends devroom 由 MariaDB Foundation 的 Ian Gilfillan 和 Oracle 的 Frédéric ‘LeFred’ Descamps 致欢迎词开场。FOSDEM 上的共存远不如过去那样敌对;“朋友们”的措辞似乎并不突兀。
Percona(一家提供 MariaDB、MySQL 和其他开源数据库专业服务的公司)的 CEO Peter Zaitsev 开始了他的主题演讲,他首先表示自己会是“一个机会均等的冒犯者”,声称“MySQL 和 MariaDB 的人都将发现许多值得商榷之处”。

我认为他失败了,至少在 MariaDB 方面是如此——他的概述相当平衡:“MariaDB 不是 MySQL。MariaDB 和 MySQL 起源相同,但分化已足够大,应该被视为两个不同但都很棒的数据库”,这并不存在争议。
他的鸟瞰式比较是恰当且相关的:MySQL 接受贡献,MariaDB 鼓励贡献。MySQL 是投递式开源,MariaDB 的开发是公开进行的,更加透明。MariaDB“最初在功能上与 MySQL 竞争”,“正在改进 SQL 支持”(例如 2016 年引入的公共表表达式、窗口函数),“非常注重从 Oracle、MS SQL 迁移”。这没什么不对。
以及可用性。“MariaDB 专注于聪明人的可用性,MySQL 专注于笨蛋的可用性”是 Peter 的简化说法,兑现了他设定的冒犯预期。就我个人而言,我希望我们能专注于所有人的可用性。
我认为 Peter 对整体路线图的优先级判断是正确的:MariaDB“将旧代码库推得更远”,“优先考虑选择和灵活性”,“支持多种存储引擎”,并且开发团队“更贴近实际操作”。一针见血。
最重要的是,Peter 指出 MariaDB 延续了“经典”MySQL 的哲学:相对频繁的主要版本发布,在次要版本中不进行重大更改,如果出现问题允许次要版本降级。数据集保持完整。相比之下,MySQL 8 是一个“常青版本”,在次要版本中引入功能,禁用次要版本降级(这是一个重要的安全网)。Peter 补充说,MySQL 的这项政策惹恼了许多用户。
在复制方面,Peter 指出 MariaDB 的 Galera 4 比 MySQL 组复制更进一步(尽管后者本身进展更快)。他抱怨 MySQL 的 GTID 实现需要“多个博士学位”;MySQL 和 MariaDB 之间的全局事务 ID 不兼容性确实降低了两者之间的互操作性。
至于 SQL 标准兼容性,MySQL“没有什么我能想到的 MariaDB 不提供的”,而 MariaDB 有 sql_mode=Oracle、系统版本化表、SEQUENCE(一种更通用的 AUTO_INCREMENT)和 PACKAGES(存储过程)。编者注 GTID:MariaDB 可以从 MySQL 复制,但 MySQL 不能从 MariaDB 复制。
Peter 对 MariaDB 的一项抱怨是关于其有限的 Kubernetes 支持(这也是 MySQL 的一个不足)。他是对的,但我无法承诺目前正在进行这方面的工作。值得庆幸的是,Peter 自己已经贡献了一个 Percona Kubernetes Operator。
其他 MySQL, MariaDB and Friends devroom 内容
devroom 继续进行了其他一些演讲。77 份提交,只有 13 个槽位!我只来得及享受很少几个,因为我还有一些半私人会议和一对一讨论要进行。幸运的 Postgres,我听说他们有 7 份提交,而且全部都能安排进来!还有我们贴出的“我们正在招聘”通知。

走出 devroom 似乎是一个不可逆转的决定;当我想要重新进入时,“满员”的标志频繁出现在 devroom 外。
我计划与许多其他人见面。例如,我曾希望与长期同事和朋友 Giuseppe Maxia(一个善意的批评者,鼓励 MariaDB 保持真实 Keep It Real,使用 Ali G 的词汇)重新联系。我也从未去拜访过 Jaime ‘Jynus’ Crespo 和 Wikimedia Foundation 的朋友。我的待办事项清单上有一些重要事项未能完成——这些都顺延到了后续跟进时间。

但我们确实进行了不错的 MariaDB Foundation 内部团队会议,利用难得的机会面对面讨论。我们的房间共享政策很好地弥补了团队虚拟性质带来的稀少的现实互动。去年 FOSDEM,我与 Sergei Golubchik 合住;今年与 Ian Gilfillan 合住。谁在“史上打鼾最响亮”排行榜上领先是保密的,仅在严格的知情需要基础上分享。
周日:MariaDB Day
FOSDEM 的受欢迎程度给 MariaDB Foundation 带来了一个只是一部分令人愉快的难题。还记得周六 devroom 有超过 60 份 FOSDEM 提案被拒绝吗?MySQL 现在和过去通过在周四和周五增加额外天数作为周边活动来解决这个问题,这些活动被 FOSDEM 列入了 Fringe 列表 https://fosdem.org/2020/fringe/。我们决定周日也这样做,尽管那天还有其他 FOSDEM 活动在进行。我们没有找到任何行为准则禁止这样做,因为我们肯定希望遵守 FOSDEM 规则。所以对于那些对深入了解 MariaDB 感兴趣的人,我们在周日继续举办了自己的活动,地点在一家不远的酒店(对我们许多人来说步行可达)。至少,FOSDEM 批准我们将活动列入 Fringe 列表,并且参与者对演讲的价值给予了热情的反馈。
MariaDB Day 的第一场演讲也是由 Peter Zaitsev 主讲,关于“MariaDB 可观测性”。这是当天关于各种监控的流行语,从非常简单的经典 SHOW STATUS 到最佳图形监控工具。很好的概述。

另一个很好的概述是 Vlad Bogolin 关于 MariaDB Foundation 如何使用 Buildbot 进行 MariaDB Server 的持续集成。他将单独撰写博客文章。Vicentiu Ciorbaru 介绍了 MariaDB 和 MySQL 中 ROLE 的区别。
MariaDB Day 还有其他精彩的演讲,特别是 Monty 关于 S3 存储引擎(一种用于云的快速、低成本归档存储引擎)、Seppo Jaakola 关于 MariaDB 10.5 Galera 功能、Nikita Malyavin 关于应用时间扩展、Marko Mäkelä 关于 InnoDB 状态和路线图、Sveta Smirnova 关于 Galera 模式升级陷阱,以及 Dmitry Dain 关于使用 Virgil PureKit 保护存储数据。
对生产环境中的 MariaDB Server 进行性能分析
一个特别令人兴奋的演讲是 Valerii Kravchuk 主讲的“MariaDB DBA 的 eBPF 和动态追踪 (ftrace, bcc tools and bpftrace)”。这个演讲事先在许多 FOSDEM MariaDB 人员中引起了警报;有人说这是“火箭科学级别的调试”。听众们当然没有失望。

从某种意义上说,这种火箭科学并不难理解。它是关于性能分析和寻找性能瓶颈。如果存在无法解释的时间消耗,MariaDB Server 将时间花在了哪里?大型安装有时会出现很难理解和定位的问题,其根本原因深藏于代码中,并且发生场景难以重现和重复。通常的补救措施是运行调试模式编译的代码,并启用日志记录——这会带来巨大的性能损失,并且很难设置(需要重启服务器才能开始测量)。
而 Valerii 在他的演讲中精彩概述的工具则不然。可以在生产环境中设置追踪(性能分析),无需调试服务器的成本,并且可以在不重置整个服务器的情况下开启。在听众席上,可以看到 Booking.com 现在和以前的员工脸上都亮了起来,“哦,有了这个,我们就能更容易地理解 MariaDB Server 在调查那个问题时把时间花在了哪里……”,他们指的是过去的“战争故事”,而那些战争并没有远到让时间的流逝治愈痛苦经历的伤痛。
周一:OpenForum Europe
周一,我与前 MariaDB Foundation CEO Simon Phipps 一起参加了另一个周边活动,距离酒店不到一公里。
欧盟委员会通信网络、内容和技术总司此前曾发起一项研究,以了解开源软件(OSS)和硬件(OSH)对欧盟技术独立性、竞争力和创新的影响。在此之前,我与 OpenForum Europe(OFE)进行了接触,他们的议程是扩大开源的使用范围。

因此,一群代表各种开源利益相关者的专家聚集在 FOSDEM 周围。这是学术界、政策制定者和行业之间的跨界交流。感谢 Simon 提前告诉我这项重要倡议。
与欧洲同行见面收获颇丰。我之前对开源硬件了解不多,但我确实受到了启发,要参与其中,不仅参与促进开源在欧洲的应用过程,还要亲手尝试开源硬件。怎么样?在我芬兰的岛上办个小型的私人 Arduino 或 Raspberry Pi 制作展,来控制声音和灯光?
开源和 FOSDEM 能激发人们做的事情似乎没有限制——无论是工作还是娱乐。