Redis/Python被要求更改Master/Slave程式介面名稱和描述
Master/Slave 是一個在計算機編輯中廣泛使用的術語,在Redis用來描述主/從程序。而有些人認為 master-slave 術語被認為具有侵犯性,所以出現了很多呼籲修改的聲音。
Redis
Redis作者 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 進行迴應,現在目前看來,這仍然是一個重大的破壞性變更
就在上週,在 Red Hat 工作的 Python 開發者 Victor Stinner 公開提交了 4 個 PR,希望能將 Python 文件和程式碼中出現的 "master" 和 "slave" 修改為像 "parent" 和 "worker" 這樣的術語,以及對其他類似的術語也進行修改。Victor Stinner 在他的 bug report 中解釋說,出於多元化的考慮,儘量避免出現與奴隸制相關的術語反而可能會更好,像 'master' 和 'slave' 這種。他還指出之前就已有關於這個問題的投訴,但都是私下提出的 —— 以避免引起激烈的爭論。