作者 | ANTIREZ、小智

近日,Redis 作者在 GitHub 上发起了一个“用其他词汇代替 Redis 的主从复制术语”的 issue。有人认为 Redis 中的术语 master/slave (主人 / 奴隶)冒犯到了别人,要求 Redis 作者 ANTIREZ 修改这个术语,甚至连 ruby on rails 的作者 DHH 都在表态。本文对此 issue 做了简单翻译,以飨读者。

背景介绍

包容性领域的积极分子多次要求 Redis 使用不同于主从的术语,特别是与奴隶制无关的术语。就我个人而言,我认为这种努力不值得,但这是我个人的观点。另一方面,不同的 Twitter 话题,尤其是与 DHH 的交流,以及许多人开始建议不再使用 Redis 的账户,让我思考了一些事情。具体来说,我认为对于愿意使用 Redis 的工程师来说,这可能是一个问题。因为他们认为将其应用于某些工作场所,Redis 中使用的术语可能产生问题。我不想由于我的想法,给 Redis 社区制造麻烦。

与此同时,一旦我开始表现得对这些术语重新命名的可能性更加开放,我开始收到更多人的抱怨,这些人多年来一直为该项目做出贡献,我们不得不做的事情让我们感到恼火。我们不会以任何方式更改系统,这样做的代价太大,而且会产生兼容性问题。

我的想法是在所有这些事情之间找到一个中间地带,因为术语的变化会带来很多问题:

  • PRs 将不再适用;
  • 我们有一些命令,例如 INFO 和 ROLE,它们用包含从属项的协议进行应答;
  • 源码中出现了 1500 次 slave 术语;
  • 拥有 private trees 并根据需要合并的人会遇到很多问题。

所以这种改变可能会产生很多问题。此外,Twitter 上的许多人不理解 Redis 的向后兼容性文化。Redis 5 现在发布的候选版本与 Redis 发布的第一个稳定版本是向后兼容的。这种文化确保升级操作简单,在客户端没有无用的工作要做等等。这是一件值得考虑的大事。

可能的解决方案

然而,我想发出一个信号,因为在推特上,很多人发起要求改变这个术语。当我处理 Redis 社区时,我不想成为它的国王,我需要为这里的人们服务。然而,一个信号不需要在整个社区中造成许多问题,所以这是我建议做的。

短期变化

首先,我们做以下工作:

  1. 更改文档以引用主副本。如果我们选择 master,这在 2018 年不会冒犯任何人 (明年我们再看…),至少改变的事情会少一些。副本非常常用,并且已经在 Redis 集群中使用;
  2. 改 SLAVEOF 为 REPLICAOF。你仍然可以使用 SLAVEOF,但现在有了选择;
  3. 请参阅文档内的副本;
  4. 将配置指令也从 slaveof 更改为 replicaof;
  5. 作为第一步,让所有内部组件在源级别仍然是从属的。现在改变所有这些将是一个大问题,因为我们处于发布候选状态,并且有太多的待处理 PRs。
  6. 继续以 slave 回复 INFO 和 ROLE,因为这暂时是一个重大的破坏。

长期变化

  1. 在未来的某个时刻,写一个 INFO 的替代品,因为无论如何 INFO 不是 Redis 数据收集的未来...... 它太有限,一次提供太多信息,客户需要解析它。我们将设计一个新命令,在新命令中我们不会引用从属,而是复制到副本。
  2. 当我们打算破坏很多东西时,比如包含 RESPv3,也可以将 ROLE 命令更改为输出副本而不是 slave。如果客户端检测到它是 RESPv3 服务器,那么他们现在认为 ROLE 将以不同方式回复,也就是说,它将以“replica”进行应答,而不是“slave”。
  3. 首先,由于一些技术原因,我们需要在内部替换很多东西,这样很多 PRs 就不适用了,还要切换变量和函数名。然而,作为一种脱离背景的变化,这是不可接受的,因为它会导致很多问题。我们必须在某个地方进行更大的改变。

我们不会提供第二步的 ETA,我希望社区能理解我们的技术问题。然而,我希望人们能意识到至少有人在听。某些要求改变的人声音洪亮,充满敌意,但我在 Twitter 上看到很多人只是平静地要求看到一些改善。有一件事是肯定的:主从术语在未来不会被使用,所以让我们一起做这个改变,并继续我们的实际工作,即:使 Redis 更好和可用。

我知道这可能看起来很恶心,但我希望这里的大多数评论都是由最近几年在 redis land 做了一些事情的人提供的。人们发送 PRs、打开问题、编写客户端库、大规模使用 Redis 并定期提供提示等等,如果如果您是 Github 的临时用户,在这里跳出来说“改变它!”这只会制造噪音。谢谢。

issue 链接:

https://github.com/antirez/redis/issues/5335

这只是个例吗?

Redis 目前在 GitHub 上有 3.1 万个赞,1.2 万个 fork,然而在这条 issue 的下面,600 余个 emoji 表态里,有超过 480 个向下的大拇指,100 余个困惑的表情,却只有不到 60 个赞。

类似的事件是个例吗?当然不是。

早在 2014 年,django 也曾发生过类似事件,当时其 issue 的主题是:将 master/slave 出现的地方都改成 leader/follower。底下用户参与的评论不出意外也是一副懵逼脸,Are you serious?

issue 地址:

https://github.com/django/django/pull/2692

笔者又再扒了一下,发现 React 项目下也有人在跟进发起类似的 issue:黑名单(blacklist)太具攻击性!当然,目前还没什么人搭理他。

issue 地址:

https://github.com/facebook/react/issues/13604

除了主从复制的术语,外国程序员们还咬文嚼字过哪些词呢?

Twitter 上一位分不清是高级黑还是太较真的用户发了一条这样的推文,总结了下国外程序员们敏感的技术词汇:

对于这样的事件,中国程序员纷纷表示不能理解:

不就是一个针对计算机的术语么?怎么就冒犯人了?

吃饱了撑的,工作太闲不饱和啊,拉来中国加加班就好了。

没想到白左都进军技术圈了。

事实证明,还是国外的杠精比较厉害。

西方世界已经被政治正确占领了。

InfoQ 观点

Master/Slave 的中文翻译,一开始便避免了英文的奴隶一词,而巧妙地改成了主从复制。从这个角度看,其实国内对于 slave 一词的负面词性也是做了一些处理和规避的。

但是仅仅因为一个词性的问题,就大费周章去做一些牵一发而动全身的修改是否有必要?目前来看需要更加仔细斟酌,如果因为少部分批评者的言论就去修改细节乃至源码,是否会影响到更多未发声的实际使用人群?

至于威胁如果不改就再也不用的人群,跟国内某些成天抵制这个抵制那个的群体又有何区别?项目开发者的确需要考虑用户的需求与感受,但不应该受用户的各色言论所左右。追求尽善尽美,最终可能既不善也不美。


智慧的 InfoQer 们,你们又是怎么看的?

Redis作者摊上事了:多人要求修改Redis主从复制术语master/slave相关推荐

  1. ttf能改成gfont吗_一楼业主把半地下室窗户改成门,出来就是下沉式小花园,摊上事了...

    小区一楼的业主将自家的半地下室的窗户敲掉全都改成了门,这种现象还不止一家,都想要设计个下沉式小花园.这楼下业主开心了,楼上住户可就瑟瑟发抖了,为这事楼上楼下吵得不可开交.闹到物业那才知道摊上事了. 一 ...

  2. 计算机故障吧,摊上事了!我给客户修电脑说主板硬盘坏了,客户:你也太坑了吧!...

    原标题:摊上事了!我给客户修电脑说主板硬盘坏了,客户:你也太坑了吧! 硬盘是电脑中重要的硬件之一,它主要的作用就是存储系统与重要文件的,生活中常见的就是固态硬盘与机械硬盘,固态硬盘的特点是读写速度快, ...

  3. 苹果摊上事了,iPhone 13新机大翻车,坑害无数人

    等等党又赢麻了 小雷今天瞅了一眼时间,发现已经临近国庆. 这里头就有两大好消息. 一是距离放假只剩几天时间,广大打工人们终于喜提葛优躺7天,归家享受父母的五星级酒店待遇. 当然,7天左右是这个待遇的极 ...

  4. Facebook 又摊上事了,数亿用户被波及!

    继轰动全球的数据泄露丑闻后,Facebook又身陷安全疑云.近日据外媒报道,数亿Facebook用户的密码一直用明文储存,数千名Facebook员工都可查询到!某些情况下,密码甚至可以追溯到2012年 ...

  5. “盗窃”而来的 3000 亿单词?ChatGPT 摊上事了,遭索赔 30 亿美元!

    整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 2016 年 10 月 19 日,英国剑桥大学理论物理学教授 Stephen Hawking 曾预言:"强大 AI 的崛起,可 ...

  6. 摊上事了?中国卖家对亚马逊发起集体诉讼:3000多账号被封 损失惨重

    9月30日消息,据国外媒体报道,9月13日,多个中国卖家就封号事件在美国加州北区地方法院提起集体诉讼,指控亚马逊以打击好评返现为由进行帐号封禁和资金扣留. 去年,亚马逊对其平台上使用的付费评论的公司进 ...

  7. GitHub 项目被爆 刷 Star!阿里这波又摊上事了...

    点击关注公众号,回复"1024"获取2TB学习资源! 转自:机器之心  参考:zhihu.com/question/494108102 开源本是一件好事,但当掺杂了一些其他「功利性 ...

  8. 技术圈热议:阿里 GitHub 项目被爆出 刷 Star!这波又摊上事了...

    点击关注公众号,利用碎片时间学习 来自机器之心 开源本是一件好事,但当掺杂了一些其他「功利性」的东西时,也许就变味了. 提到国内自研数据库,阿里巴巴推出的云数据库 OceanBase 肯定不可绕过. ...

  9. 又摊上事了!刹车门还没完,特斯拉或将面临10亿元巨额索赔

    据国外媒体报道,近日,挪威一家法院裁定,特斯拉总共需要向30名原告赔偿48万美元,他们称因特斯拉软件升级,电池容量和充电速度降低. 30名挪威特斯拉车主在12月份向该国的调解委员会提出申诉,称一些20 ...

最新文章

  1. android service是单例么,android 使用单例还是service?
  2. 【Netty】NIO 选择器 ( Selector ) 通道 ( Channel ) 缓冲区 ( Buffer ) 网络通信案例
  3. HTML结构化CSS网页布局入门指南
  4. BZOJ.1032.[JSOI2007]祖码(区间DP)
  5. Apache Doris : 一个开源 MPP 数据库的架构与实践
  6. SAP CRM Fiori应用之My Account功能一览
  7. 【HDU - 5094】 Maze (状态压缩+bfs)
  8. 28 岁字节程序员退休,财务自由
  9. 更改图书信息c语言编码,图书管理系统C语言实现源代码.pdf
  10. windows的exe文件反编译为msi安装文件
  11. 【阿里图标库的使用】
  12. 基于Springboot的Java邮件系统的设计与实现(附论文和源码)
  13. 这次,华为选择了湖南大学、湘潭大学
  14. STM32 USB Host 鼠标和键盘驱动 -- 原创
  15. keyshot怎么贴logo_Keyshot贴图技巧,Keyshot纹理中的常用贴图方法
  16. 几种欧姆龙PLC型号的辨识
  17. linux V4L2子系统——v4l2架构(5)之v4l2_device与v4l2_subdev异步机制
  18. SEO优化-SEO具体方法,SEO干货分享
  19. 抗击疫情,程序员在家免费学这些!
  20. 如何获取美团饿了么的推广链接赚钱

热门文章

  1. linux move权限,Red Hat Enterprise Virtualization Manager MoveDisk目标域权限检查不足拒绝服务漏洞...
  2. fpga供电电压偏低会怎样_[走近FPGA]之开发板介绍篇
  3. java编程能做什么_学习Java编程能做什么工作?
  4. 搜索重复代码_LeetCode专题——详解搜索算法中的搜索策略和剪枝
  5. Unity3D_NGUI_安卓APK安装包瘦身实践
  6. startup毕业论文
  7. Redis failover过程
  8. mysql一些写常用命令
  9. [转]js判断url是否有效
  10. 谁说菜鸟不会数据分析--数据分析那些事儿