AliSQL · 社区动态 · 关于开源之后评论的评论

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 背景AliSQL在云栖大会宣布开源,并有幸请到MySQL之父、MariaDB创始人Monty一起见证。我们在将消息公布到社区之后,也同时关注社区的反馈。以下是对于评论的评论。handshake protocol声音:以阿里的个性就是大多数开源了 push 到 github 后面就不怎么管了其实这么说的人并没有真正全面的去看阿里开源的趋势,大家会看到这几年的分支维护的是越来越

背景

AliSQL在云栖大会宣布开源,并有幸请到MySQL之父、MariaDB创始人Monty一起见证。

图1. AliSQL开源瞬间

我们在将消息公布到社区之后,也同时关注社区的反馈。以下是对于评论的评论。

handshake protocol

声音:以阿里的个性就是大多数开源了 push 到 github 后面就不怎么管了

其实这么说的人并没有真正全面的去看阿里开源的趋势,大家会看到这几年的分支维护的是越来越健康的。“后面就不怎么管“,这里的“后面”说得很有艺术性,除了天地之外没有什么东西是保证天长地久的。活跃三天和活跃三十年,只要停下来,你说的“后面”就都是对的。如果以这个为标准,那么不只是中国的开源分支,全世界的开源产品都是到“后面”就不维护的。

因此我们眼中的健康的开源会是什么样呢?我觉得最重要的是态度,然后是天时地利。
态度是:我们把开源分支和维护作为我们的一个小理想在保护。只要条件还允许,我们会持续维护。天时地利是:那些条件。

以 AliSQL 的开源策略来说,我们希望节奏上是RDS线上经过验证的、稳定使用的patch才发布到开源分支。所以我们可以保证的是,只要阿里云RDS的业务在,这个分支的维护就会持续
大家会看到我们接下来会每个季度至少发布两个Release Notes,把我们认为稳定的和有足够应用场景的patch发布到开源分支。
本次发布开源代码同时我们发布了新的Release Note,增加了TokuDB和秒杀场景功能 支持。

声音:Release Notes 里两个版本号竟然是一样的

其实版本号不同,你需要把发布日期也一起带进去看。AliSQL的版本策略是这样的,我们会持续 rebase 到官方最新或次新的GA版本,但是AliSQL要保持自己的更新节奏,因此我们的版本号格式是官方base版本+(发布日期)。

这样的好处是大家从版本号可以得到足够的信息,包括与自用 MySQL 的版本对比和分支活跃情况。

声音:issue#2 ~ issue#7 是什么鬼?也是 KPI 的一部分?

并不是所有事情都要跟 KPI 挂钩,尤其issue里的“赞”,没有意义。
作为分支管理者,对于外部参与者的称赞,我们只能表示感谢,然后关闭。难道还可以删除吗?话说好像 GitHub 也没有删除发言的功能,只能修改,总不能修改别人的评论。

至于内部的同学,在 issue 发“赞”我们是批评的。因为在github上最直接的赞,是Star;最有直接价值的赞,是提问题和改进建议;最有长远价值的赞,是提需求或者pull request。
比如上周末 @DarkiT 同学提的建议“建议官方帖个标准的my.cnf的配置” 就非常好,感谢。我们已经在 wiki 上更新了三个不同规格的推荐配置。

声音:就不能把优化合并到官方 MariaDB 或 MySQL 么?

如果所有的patch都能合并到MariaDB,我们又何必这么麻烦再单独维护一个分支呢。如果可以而没有这么做,MariaDB的创始人Monty肯定是第一个提出反对意见的。

实际上的情况是:

  1. 我们会把能够合并到MariaDB或MySQL的patch提交上去。这篇文章 里面提到的patch,其实就都是提交到MySQL,并已经被5.7合并入主干的patch;
  2. 有一些patch是不够general,但是我们觉得对某个垂直场景有效果的。

这里举个例子,AliSQL里面有 COMMIT_ON_SUCCESS 这个hint,作用是,如果带此hint的语句执行成功,事务就默认提交。这个有什么好处呢?正常的使用方法是更新、等待成功、发commit。加这个hit可以减少事务提交的最后一次交互,在系统压力大或者网络较长的场景下,这是可以减少事务持续时间,提升整体吞吐量的。

这样的 patch 其他分支未必会接受,但对我们自己和我们的用户来说,在一些场景下是有效的,我们就去维护。

展望:从公司力量到社区力量

“事实上很多成熟的开源项目都是商业公司主导或贡献的”(from @incompatible),此句为真相。
同时,我们也看到,一个成熟项目一定是社区力量一起来完成的。因此我们真诚希望在GitHub上能够看到pull request、功能需求、IDEA、测试结论。

相信每个公司的DBA都偶尔有这么一个想法:要是MySQL支持xxx这个功能,我就爽了。但是没有开发和维护能力?没有关系,提到issue中,如果这是一个在某个方向足够通用的需求,我们或者社区其他开发者,会去实现的。

阿里云RDS团队有没有做这件事情的驱动力呢?
有的,以现在RDS的用户量和覆盖场景,你的需求,也一定是一部分RDS用户的需求。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
前端开发 Dubbo 测试技术
QCon 2022·上海站 | 学习笔记9: 关于 API 文档驱动研发模式的探索与实践
QCon 2022·上海站 | 学习笔记9: 关于 API 文档驱动研发模式的探索与实践
154 1
QCon 2022·上海站 | 学习笔记9: 关于 API 文档驱动研发模式的探索与实践
|
数据库 数据库管理
大咖说·对话开源|企业如何用好开源数据库
企业数据库选型的通用原则有哪些? 企业如何抓住开源红利? 本期大咖说,阿里云数据库开源战役负责人惊玄携手吉利汽车集团DBA负责人胡志诚,与你分享关于企业如何用好开源数据库的一些思考与实践经验。
120 0
大咖说·对话开源|企业如何用好开源数据库
|
存储 并行计算 搜索推荐
【学习视频】第3期2020-PostgreSQL+MySQL 联合解决方案课程 - 适合架构师与业务开发者
大家好,这里是PostgreSQL+MySQL 联合解决方案课程 - 汇总视频、课件
|
存储 SQL Cloud Native
深入了解阿里云PolarDB的应用与成就|阿里云产品精选内容推荐(十一)
本文内容来源于阿里云开发者社区,主要分析阿里云PolarDB的应用讲解
|
SQL 关系型数据库 测试技术
PgSQL · 应用案例 · 阿里云 RDS PostgreSQL 高并发特性 vs 社区版本
背景 进程模型数据库,需要为每个会话指派独立的进程与之服务,在连接数非常多,且大都是活跃连接时,进程调度浪费或引入的开销甚至远远大于实际任务需要的开销(例如上下文切换,MEMCPY等),性能下降会较为严重。
2838 0
|
存储 Oracle 关系型数据库
【PG云栖周刊】第2期·PostGIS北京3月活动,存储扩展引擎zheap,Oracle兼容性之 - 数据类型
3月17-18 PG象行中国2018-地理信息处理GIS专题(北京站),活动地点:北京师范大学 艺术楼 201教室;PostgreSQL最新存储扩展引擎zheap,计划加入到PG12;PostgreSQL 10.3更新版本发布;云数据库PPAS Oracle兼容性 - 数据类型;PostgreSQL中HOOK的使用,避免误删库的问题。
5096 0
【PG云栖周刊】第2期·PostGIS北京3月活动,存储扩展引擎zheap,Oracle兼容性之 - 数据类型
|
AliSQL 关系型数据库 索引
AliSQL · 特性介绍 · 动态加字段
背景 加字段作为业务需求变更中最常见的需求,InnoDB引擎表的加字段功能一直以来被运维人员所诟病, 虽然支持了online方式,但随着表空间越来越大,copy整张表的代价也越来越大。 AliSQL版本在InnoDB的compact记录格式的基础上,设计了新的记录格式comfort,支持动态加字段。 使用方法 使用的实例如下: CREATE TABLE test( id int primar
2324 0
|
关系型数据库 索引
TokuDB · 捉虫动态 · MRR 导致查询失败
问题背景 最近有用户在使用 TokuDB 时,遇到了一个查询报错的问题,这里给大家分享下。 具体的报错信息是这样的: mysql> select * from t2 where uid > 1 limit 10; ERROR 1030 (HY000): Got error 1 from storage engine 表结构如下: CREATE TABLE `t2` ( `
2177 0
|
监控 关系型数据库 MySQL
MySQL · 社区贡献 · AliSQL那些事儿
一直以来我们都在不断对我们的阿里云MySQL分支做极致的性能优化及功能扩展。我们从社区的分支,如上游版本及Percona Server上学习新的改进和功能,并引入到我们的分支中。同时我们也将我们的一些改进思路反馈到上游,让整个社区也能享受到我们的成果。 本文主要介绍下AliSQL贡献给上游MySQL5.7版本的一些跟性能相关的优化。注意这里只摘取了几个比较有意思的优化,在即将开源的AliSQL中
1956 0