實屬無奈!Redis 作者被迫修改 master-slave 架構的描述

humengyi發表於2018-09-14

相信在座各位的開發者都不會對 Redis 的主從模式(master-slave)感到陌生。Redis 中的主從模式事實上也是源自 MySQL 中同名的一個概念,是同步資料的一種手段。在這樣的場景下,master-slave 本來是一個不帶任何感情色彩的詞語。然而有很多開發者卻不這樣認為,他們在閱讀 Redis 5.0 RC5 的變更日誌後發現,Redis 仍然在使用 “master” 和 “slave” 術語來在 Redis 的複製中區分不同的角色,他們對此感到失望,並希望 Redis 作者能修改 Redis 中 master-slave 架構的描述。

按 Redis 作者 antirez 的說法,這已經不是開發者第一次提這種要求了。但這次呼籲修改的聲音異常的大,就連 antirez 在推特發起的匿名投票也顯示超過半數的人希望修改 master-slave 這一描述。


undefined

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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章