騰訊開源分布式存儲系統(tǒng) Tendis,可完全兼容 Redis
近日,騰訊宣布開源一個與 Redis 協(xié)議完全兼容的高性能分布式存儲系統(tǒng)Tendis。
據(jù)悉,Tendis 是騰訊互娛 CROS DBA 團隊 & 騰訊云數(shù)據(jù)庫團隊自主設(shè)計和研發(fā)的分布式高性能 KV 存儲數(shù)據(jù)庫,兼容 Redis 核心數(shù)據(jù)結(jié)構(gòu)與接口,可提供大容量、低成本、強持久化的數(shù)據(jù)庫能力,適用于兼容 Redis 協(xié)議、需要大容量且較高訪問性能的溫冷數(shù)據(jù)存儲場景。Tendis 目前已經(jīng)被應(yīng)用到騰訊內(nèi)、外部大型項目中。
據(jù)項目官方文檔介紹,Tendis 的主要特性包括:
- 兼容 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é)點之間遷移,擴容和縮容過程中對應(yīng)用運維人員透明,支持?jǐn)U展至 1000 個節(jié)點。
- 故障自動切換 。自動檢測故障節(jié)點,當(dāng)故障發(fā)生后,slave 會自動提升為 master 繼續(xù)對外提供服務(wù)。
- Tendis冷熱混合存儲關(guān)鍵組件 。得益于 Tendis 存版的設(shè)計和內(nèi)部優(yōu)化,Redis 和 Tendis 存儲版可以一起工作成為 Tendis 冷熱混合存儲?;旌洗鎯^(qū)非常適用于 KV 存儲場景,并平衡了性能和成本。對于 redis 占用大量存儲空間的冷數(shù)據(jù)降冷后可以最多減少 80% 的成本,同時保證了熱數(shù)據(jù)在 redis 的訪問性能。
據(jù)悉,項目團隊下一步規(guī)劃是將持續(xù)完善對 Redis 的兼容性,包括支持 LUA 等命令,同時進一步提升 Tendis 的性能,包括減少 rocksdb 本身的性能抖動問題,探索更多軟硬結(jié)合方案,基于新硬件特性發(fā)揮更大的數(shù)據(jù)庫性能,支持異構(gòu)數(shù)據(jù)互通能力等。
Tendis 官網(wǎng)地址: http://tendis.cn/#/