IT之家12月22日消息 近期,騰訊宣佈企業級分佈式高性能 KV 存儲數據庫 Tendis 正式開源。
IT之家獲悉,Tendis 是騰訊互娛 CROS DBA 團隊 & 騰訊雲數據庫團隊自主設計和研發的分佈式高性能 KV 存儲數據庫,兼容 Redis 核心數據結構與接口,可提供大容量、低成本、強持久化的數據庫能力,適用於兼容 Redis 協議、需要大容量且較高訪問性能的温冷數據存儲場景。Tendis 目前已經被應用到騰訊內、外部大型項目中。
集羣架構
Tendis 使用去中心化集羣架構,每個數據節點都擁有全部的路由信息,用户可以訪問集羣中的任意節點,並且通過 redis 的 move 協議,最終路由到正確的節點。
每個 Tendis 節點維護各自的 slot 數據,任意兩個 master 節點之間的 slot 不重複,master 節點之間支持基於 slot 的數據搬遷,主備節點之間通過 binlog 實現數據複製。
所有節點之間通過 gossip 協議進行通訊,類似於 redis cluster 的分佈式實現,所有節點通過 gossip 協議通訊,可指定 hashtag 來控制數據分佈和訪問,使用和運維成本極低。
適用場景
兼容 Redis 協議,需要大容量且較高訪問性能的温冷數據存儲場景
適合成本為主要考慮因素,業務數據有高持久化要求的業務場景
解決原生 Redis 固有的 fork 問題而預留部分內存問題
主要特性
兼容 Redis 協議
完全兼容 redis 協議,支持 redis 主要數據結構和接口,兼容大部分原生 Redis 命令。
持久化存儲
使用 rocksdb 作為存儲引擎,所有數據以特定格式存儲在 rocksdb 中,最大支持 PB 級存儲。
去中心化架構
類似於 redis cluster 的分佈式實現,所有節點通過 gossip 協議通訊,可指定 hashtag 來控制數據分佈和訪問,使用和運維成本極低。
水平擴展
集羣支持增刪節點,並且數據可以按照 slot 在任意兩節點之間遷移,擴容和縮容過程中對應用運維人員透明,支持擴展至 1000 個節點。
故障自動切換
自動檢測故障節點,當故障發生後,slave 會自動提升為 master 繼續對外提供服務。
Tendis 冷熱混合存儲關鍵組件
得益於 Tendis 存版的設計和內部優化,Redis 和 Tendis 存儲版可以一起工作成為 Tendis 冷熱混合存儲。混合存儲區非常適用於 KV 存儲場景,並平衡了性能和成本。對於 redis 佔用大量存儲空間的冷數據降冷後可以最多減少 80% 的成本,同時保證了熱數據在 redis 的訪問性能。
項目規劃
持續完善對 Redis 的兼容性,包括支持 LUA 等命令
進一步提升 Tendis 的性能,減少 rocksdb 本身的性能抖動問題。
探索更多軟硬結合方案,基於新硬件特性,發揮更大的數據庫性能。
支持異構數據互通能力,降低異構數據庫的遷移成本
運維管理能力全面提升,PaaS 能力持續增強
Tendis 目前已在騰訊內外部包括遊戲、視頻、社交、電商等多個行業提供數據庫支撐。
https://github.com/Tencent/Tendis
歡迎提出你的 issue 和 PR!
國內鏡像地址:
https://git.code.tencent.com/Tencent_Open_Source/Tendis