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