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