實屬無奈!Redis 作者被迫修改 master-slave 架構的描述
相信在座各位的開發者都不會對 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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31547542/viewspace-2214200/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 實屬無奈,求救磚機的資料
- Redis作者的公開信:開源維護者的掙扎和無奈Redis
- 分散式資料中的坑(一)Master-Slave架構分散式AST架構
- 知名開源工具被用於詐騙,作者無奈清空程式碼。。開源工具
- 奈學p7雲原生架構師架構
- 手把手教你寫一個自己的 master-slave 架構的 TCP 伺服器AST架構TCP伺服器
- 為“架構”再建個模:如何用程式碼描述軟體架構?架構
- 如何清晰地描述一個專案架構架構
- Diagrams:使用圖表描述雲系統架構原型架構原型
- 奈學教育《百萬架構師》課程大綱(1)架構
- 10.Redis哨兵架構Redis架構
- redis哨兵架構基礎Redis架構
- Linux官網被黑, Redis 被要求修改 “master-slave”幕後:政治正確會毀了技術嗎?LinuxRedisAST
- Envoy實現.NET架構的閘道器(五)整合Redis實現限流架構Redis
- 奈學教育《P7架構師》課程大綱架構
- 好資源分享 奈學教育《大資料架構師》大資料架構
- 讀懂屬性描述符
- 資深架構師談Redis高可用架構的應用及改進架構Redis
- git 修改提交作者及提交日期Git
- Android開發三年,被迫無奈歇業丟失坑位,重新出發找到對的“大廠進擊攻略”很重要!Android
- 奈學教育《大資料架構師》課程大綱(1)大資料架構
- 奈飛架構Netflix從單體到微服務演變圖架構微服務
- 微服務架構MapStruct屬性對映微服務架構Struct
- node實現檔案屬性批量修改(時間屬性)
- Android架構系列-MVP架構的實際應用Android架構MVP
- TencentHub的架構實現架構
- 路由問題很無奈!路由
- 修改追加屬性的值
- Redis雲端架構深入淺出Redis架構
- springmvc + mybatis + ehcache + redis 分散式架構SpringMVCMyBatisRedis分散式架構
- 架構師之路-redis叢集解析架構Redis
- Mysqldump實現mysql的master-slave主從複製MySqlAST
- 奈飛Netflix如何在資料整合API領域使用六邊形架構與Clean架構切換到微服務架構? - Netflix TechBlogAPI架構微服務
- 單體架構、微服務和無伺服器架構架構微服務伺服器
- 基於Redis構建微服務的反應式架構 - bitsrcRedis微服務架構
- 【Redis破障之路】三:Redis單執行緒架構Redis執行緒架構
- 唯品會架構師是如何實現架構重構的架構
- 基於SpringCloud的Microservices架構實戰案例-架構拆解SpringGCCloudROS架構