太无奈!Redis 作者被迫修改 master-slave 架构的描述

2018 年 9 月 11 日 开源中国

#扫描二维码报名源创会#


作者:OSC-局长

来自:开源中国(oschina2013)

如需转载请在文中注明来源和作者


相信在座各位的开发者都不会对 Redis 的主从模式(master-slave)感到陌生。Redis 中的主从模式事实上也是源自 MySQL 中同名的一个概念,是同步数据的一种手段。在这样的场景下,master-slave 本来是一个不带任何感情色彩的词语。然而有很多开发者却不这样认为,他们在阅读 Redis 5.0 RC5 的变更日志后发现,Redis 仍然在使用 “master” 和 “slave” 术语来在 Redis 的复制中区分不同的角色,他们对此感到失望,并希望 Redis 作者能修改 Redis 中 master-slave 架构的描述。


按 Redis 作者 antirez 的说法,这已经不是开发者第一次提这种要求了。但这次呼吁修改的声音异常的大,就连 antirez 在推特发起的匿名投票也显示超过半数的人希望修改 master-slave 这一描述。




antirez 表示他很抱歉 master-slave 这个描述让许多人感到失望,但他不认为这个特定于上下文环境的术语具有侵犯性。所以他在数据库中使用 master-slave 当然不是以任何方式暗示“奴隶制度”。


antirez 还表示,这个看似简单的修改实际上要付出昂贵的代价,并产生兼容性问题。例如:


  • 不能在应用现有的 PR

  • 现在有像 INFO 和 ROLE 这样的命令 —— 使用包含 slave 术语的协议进行回复

  • 术语 slave 中的源代码包含 1500 个事件

  • 拥有私人项目并根据需要进行代码合并的人会遇到很多问题


可以看到,冒然进行变动会产生很多问题。而且,现在发布的 Redis 5 候选版本是向后兼容的首个稳定版本。所以这也是需要考虑的一方面。最后 antirez 表达了希望能折中解决问题的建议 ——


短期内的变化


  • 将 master-slave 架构的描述改为 master-replica

  • 为 SLAVEOF 提供别名 REPLICAOF,所以仍然可以使用 SLAVEOF,但多了一个选项

  • 保持继续使用 slave 来对 INFO 和 ROLE 进行回应,现在目前看来,这仍然是一个重大的破坏性变更


长期变化


  • 编写一个 INFO 的替代品

  • 在内部替换很多东西,因为技术原因,如果作了改动,许多 PR 也会无法应用,所以必须在某些地方进行大变动

  • ……


antirez 认为,这些所谓的“政治正确”并没有什么意义,他也在博客中表达了自己的政治倾向,他每天都会在社交网络积极谈论政治,以推动社会的平等。他希望拥有一个公平、机会财富再分配和开放的世界。但他认为获得这个世界的方式不是禁止言论,也不是通过在 Twitter 上讨伐别人 —— 只是为了让他人遵守你的意识形态。antirez 表示他将会继续自己的政治活动,也会继续编写开源软件。


参考链接


  • http://antirez.com/news/122

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


开源中国征稿开始啦!


开源中国 www.oschina.net 是目前备受关注、具有强大影响力的开源技术社区,拥有超过 200 万的开源技术精英。我们传播开源的理念,推广开源项目,为 IT 开发者提供一个发现、使用、并交流开源技术的平台。


现在我们开始对外征稿啦!如果你有优秀的技术文章想要分享,热点的行业资讯需要报道等等,欢迎联系开源中国进行投稿。投稿详情及联系方式请参见:我要投稿





推荐阅读

Chrome:杀死 URL

Chrome 十周年大改版:迎来全新 Material Design

微软力挺 Go,宣布参与 Athens 项目和 GopherSource

给 Android 开发者的 Gradle 入门指南

这些必备的 VS Code 插件你都用过吗?


点击“阅读原文”查看更多精彩内容

登录查看更多
0

相关内容

Redis 是一个使用 C 语言写成的,开源的 key-value 数据库。
COVID-19文献知识图谱构建,UIUC-哥伦比亚大学
专知会员服务
41+阅读 · 2020年7月2日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【WWW2020-UIUC】为新闻故事生成具有代表性的标题
专知会员服务
26+阅读 · 2020年3月18日
【2020新书】Kafka实战:Kafka in Action,209页pdf
专知会员服务
67+阅读 · 2020年3月9日
工行基于MySQL构建分布式架构的转型之路
炼数成金订阅号
15+阅读 · 2019年5月16日
浅谈 Kubernetes 在生产环境中的架构
DevOps时代
11+阅读 · 2019年5月8日
数据库之架构:主备+分库?主从+读写分离?
架构文摘
8+阅读 · 2019年4月23日
基于Web页面验证码机制漏洞的检测
FreeBuf
7+阅读 · 2019年3月15日
使用 Canal 实现数据异构
性能与架构
20+阅读 · 2019年3月4日
去哪儿网开源DNS管理系统OpenDnsdb
运维帮
21+阅读 · 2019年1月22日
为什么分布式一定要有消息队列?
互联网架构师
4+阅读 · 2018年7月5日
基于 Storm 的实时数据处理方案
开源中国
4+阅读 · 2018年3月15日
优化哈希策略
ImportNew
5+阅读 · 2018年1月17日
威胁情报浅析
计算机与网络安全
7+阅读 · 2017年11月15日
Deep Co-Training for Semi-Supervised Image Segmentation
Arxiv
7+阅读 · 2018年6月8日
VIP会员
相关资讯
工行基于MySQL构建分布式架构的转型之路
炼数成金订阅号
15+阅读 · 2019年5月16日
浅谈 Kubernetes 在生产环境中的架构
DevOps时代
11+阅读 · 2019年5月8日
数据库之架构:主备+分库?主从+读写分离?
架构文摘
8+阅读 · 2019年4月23日
基于Web页面验证码机制漏洞的检测
FreeBuf
7+阅读 · 2019年3月15日
使用 Canal 实现数据异构
性能与架构
20+阅读 · 2019年3月4日
去哪儿网开源DNS管理系统OpenDnsdb
运维帮
21+阅读 · 2019年1月22日
为什么分布式一定要有消息队列?
互联网架构师
4+阅读 · 2018年7月5日
基于 Storm 的实时数据处理方案
开源中国
4+阅读 · 2018年3月15日
优化哈希策略
ImportNew
5+阅读 · 2018年1月17日
威胁情报浅析
计算机与网络安全
7+阅读 · 2017年11月15日
Top
微信扫码咨询专知VIP会员