5 理想中的Redis5 1 第二代Codis

2021-09-20 23:19:30 字數 1028 閱讀 3498

codis作者談到第二代codis,即reborndb的發展方向

,很值得學習:

「在開源codis後,我們收到了很多社群的反饋,大多數的意見是集中在zookeeper的依賴,redis的修改,還有為啥需要proxy上面,我們也在思考,這幾個東西是不是必須的。當然這幾個部件帶來的好處毋庸置疑,上面也闡述過了,但是有沒有辦法能做得更漂亮。於是,我們在下一階段會再往前走一步,實現以下幾個設計:

1)使用proxy內建的raft來代替外部的zookeeper,zk對於我們來說,其實只是乙個強一致性儲存而已,我們其實可以使用raft來做到同樣的事情。將raft嵌入proxy,來同步路由資訊。達到減少依賴的效果。

2)抽象儲存引擎層,由proxy或者第三方的agent來負責啟動和管理儲存引擎的生命週期。具體來說,就是現在codis還需要手動的去部署底層的redis或者qdb,自己配置主從關係什麼的,但是未來我們會把這個事情交給乙個自動化的agent或者甚至在proxy內部整合儲存引擎。這樣的好處是我們可以最大程度上的減小proxy**的損耗(比如proxy會在本地啟動redis instance)和人工誤操作,提公升了整個系統的自動化程度。

3)還有replication based migration。眾所周知,現在codis的資料遷移方式是通過修改底層redis,加入單key的原子遷移命令實現的。這樣的好處是實現簡單、遷移過程對業務無感知。但是壞處也是很明顯,首先就是速度比較慢,而且對redis有侵入性,還有維護slot資訊給redis帶來額外的記憶體開銷。大概對於小key-value為主業務和原生redis是1:1.5的比例,所以還是比較費記憶體的。在reborndb中我們會嘗試提供基於複製的遷移方式。

4)qdb:qdb使用leveldb、rocksdb、goleveldb作為後端儲存。我們喜歡redis,並且希望超越它的侷限,因此我們建立了乙個服務叫做qdb,它相容redis,將資料儲存在磁碟來越過記憶體大小的限制並且將熱點資料儲存在記憶體中以提高效能。」

除了第三點「基於複製的遷移」,這些改進思路在下面要介紹的redis商業版(rlec)中得到了印證。因為rlec並未透露它的遷移實現方式,所以技術細節我們不得而知。

第二代的Linux發行版

美國有乙個叫做 451集團 的組織,專門研究企業 it環境中的技術創新問題,發布需要付費購買的研究報告,並以此 為生 451集團 的研究報告是要賣錢的,言之無物的文章,對他們毫無用處。451集團 裡面有個 caos 理論部落格,這裡 caos 是指 commercial adoption of op...

EI 的第二代多項式板子整體架構理念

這是一次將多項式模板的易用性與高效性結合的嘗試。進度見此 pastebin 怎樣有易用性?封裝,用乙個vector來存多項式,過載各種運算,特點是用的時候比較輕鬆,但本身的特性導致效率必然不能達到最優。大概開放形如這樣的介面 struct poly int base iterator int ope...

組態王基於第二代Web發布平台的資訊整合解決方案

解決方案技術亮點 組態畫面遠端發布,圖形監控變數資料 以列表 曲線方式顯示變數實時資料 以列表 曲線方式顯示變數歷史資料 以圖表方式顯示及查詢資料庫資料 遠端使用者管理 分配操作許可權 遠端監控技術的挑戰 隨著internet的普及以及組態軟體開發能力的不斷提高,web server技術對於大多數組...