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 目前已在騰訊內外部包括游戲、視頻、社交、電商等多個行業提供數據庫支撐。
關鍵詞: