甲骨文着手变更MySQL术语,原Master与Slave改用Source、Replica

美国科技界包括Google和GitHub等企业,以及OpenSSL、Powershell与P5.js等知名社群,纷纷响应“黑人的命也是命”(Black Lives Matter,BLM)维权运动,开始不再使用带有种族歧视色彩的词汇,而甲骨文旗下知名数据库项目MySQL,将从8.0版本的文件开始,更换使用的术语,把Master改为Source,而Slave则改为Replica。

美国早期的蓄奴制度用语,通信产业仍沿用至今,习惯以主(Master)从(Slave)来称呼服务器端和用户端,甲骨文提到,由于这些用词的出处负面,因此他们决定要更改用语,从博客文章以及演示文稿开始,他们之中已经有许多人改使用Primary、Secondary、Source以及Replic,而更进一步,MySQL也在源码以及文件中更改语法,使术语用法更加一致。

MySQL新产品在其数据库架构,像是MySQL Group Replication、MySQL InnoDB Cluster以及MySQL InnoDB ReplicaSet已经使用Primary、Secondary来定义不同角色的服务器,而接下来发布的MySQL产品,会将原本的Master用词会改为Source,Slave则改为Replica,而黑名单(Blacklist)与白名单(Whitelist),将改用阻挡列表(Blocklist)和允许列表(Allowlist)替代。

官方解释,之所以Master新的用语会选择使用Source,是因为MySQL异步复制,是一个变更流媒体,每一个复制配置都有一个来源,这无法用来定义该服务器在整个数据库架构中,所扮演的角色,因此使用Primary并不适合,特别是在数据库结构拓朴包含双向复制、多层复制与循环复制等情况下。

由于更改术语是一项不小的工程,因此全部更改需要一些时间,官方表示,要快速删除某些语法,他们在现有命令添加别名,像是SHOW SLAVE STATUS将会变成SHOW REPLICA STATUS,但是许多命令回传的文本结果,仍然会包含Master与Slave用语。

官方提到,这项工程无法在一个发布版本就处理完,因为仍须考量现有数百万个MySQL部署,他们会经多次迭代从语法、协议、错误消息和源码,弃用和删除这些不适用的术语,现在文件团队在MySQL 8.0的文件,已经开始第一阶段的术语更改工作。