騰訊 Tendis 正式開(kāi)源:企業(yè)級(jí)分布式高性能 KV 存儲(chǔ)數(shù)據(jù)庫(kù)

2020/12/22 11:35:22 來(lái)源:IT之家 作者:騎士 責(zé)編:騎士

IT之家12月22日消息 近期,騰訊宣布企業(yè)級(jí)分布式高性能 KV 存儲(chǔ)數(shù)據(jù)庫(kù) Tendis 正式開(kāi)源。

IT之家獲悉,Tendis 是騰訊互娛 CROS DBA 團(tuán)隊(duì) & 騰訊云數(shù)據(jù)庫(kù)團(tuán)隊(duì)自主設(shè)計(jì)和研發(fā)的分布式高性能 KV 存儲(chǔ)數(shù)據(jù)庫(kù),兼容 Redis 核心數(shù)據(jù)結(jié)構(gòu)與接口,可提供大容量、低成本、強(qiáng)持久化的數(shù)據(jù)庫(kù)能力,適用于兼容 Redis 協(xié)議、需要大容量且較高訪問(wèn)性能的溫冷數(shù)據(jù)存儲(chǔ)場(chǎng)景。Tendis 目前已經(jīng)被應(yīng)用到騰訊內(nèi)、外部大型項(xiàng)目中。

集群架構(gòu)

Tendis 使用去中心化集群架構(gòu),每個(gè)數(shù)據(jù)節(jié)點(diǎn)都擁有全部的路由信息,用戶(hù)可以訪問(wèn)集群中的任意節(jié)點(diǎn),并且通過(guò) redis 的 move 協(xié)議,最終路由到正確的節(jié)點(diǎn)。

每個(gè) Tendis 節(jié)點(diǎn)維護(hù)各自的 slot 數(shù)據(jù),任意兩個(gè) master 節(jié)點(diǎn)之間的 slot 不重復(fù),master 節(jié)點(diǎn)之間支持基于 slot 的數(shù)據(jù)搬遷,主備節(jié)點(diǎn)之間通過(guò) binlog 實(shí)現(xiàn)數(shù)據(jù)復(fù)制。

所有節(jié)點(diǎn)之間通過(guò) gossip 協(xié)議進(jìn)行通訊,類(lèi)似于 redis cluster 的分布式實(shí)現(xiàn),所有節(jié)點(diǎn)通過(guò) gossip 協(xié)議通訊,可指定 hashtag 來(lái)控制數(shù)據(jù)分布和訪問(wèn),使用和運(yùn)維成本極低。

適用場(chǎng)景

  • 兼容 Redis 協(xié)議,需要大容量且較高訪問(wèn)性能的溫冷數(shù)據(jù)存儲(chǔ)場(chǎng)景

  • 適合成本為主要考慮因素,業(yè)務(wù)數(shù)據(jù)有高持久化要求的業(yè)務(wù)場(chǎng)景

  • 解決原生 Redis 固有的 fork 問(wèn)題而預(yù)留部分內(nèi)存問(wèn)題

主要特性

兼容 Redis 協(xié)議

  • 完全兼容 redis 協(xié)議,支持 redis 主要數(shù)據(jù)結(jié)構(gòu)和接口,兼容大部分原生 Redis 命令。

持久化存儲(chǔ)

  • 使用 rocksdb 作為存儲(chǔ)引擎,所有數(shù)據(jù)以特定格式存儲(chǔ)在 rocksdb 中,最大支持 PB 級(jí)存儲(chǔ)。

去中心化架構(gòu)

  • 類(lèi)似于 redis cluster 的分布式實(shí)現(xiàn),所有節(jié)點(diǎn)通過(guò) gossip 協(xié)議通訊,可指定 hashtag 來(lái)控制數(shù)據(jù)分布和訪問(wèn),使用和運(yùn)維成本極低。

水平擴(kuò)展

  • 集群支持增刪節(jié)點(diǎn),并且數(shù)據(jù)可以按照 slot 在任意兩節(jié)點(diǎn)之間遷移,擴(kuò)容和縮容過(guò)程中對(duì)應(yīng)用運(yùn)維人員透明,支持?jǐn)U展至 1000 個(gè)節(jié)點(diǎn)。

故障自動(dòng)切換

  • 自動(dòng)檢測(cè)故障節(jié)點(diǎn),當(dāng)故障發(fā)生后,slave 會(huì)自動(dòng)提升為 master 繼續(xù)對(duì)外提供服務(wù)。

Tendis 冷熱混合存儲(chǔ)關(guān)鍵組件

  • 得益于 Tendis 存版的設(shè)計(jì)和內(nèi)部?jī)?yōu)化,Redis 和 Tendis 存儲(chǔ)版可以一起工作成為 Tendis 冷熱混合存儲(chǔ)。混合存儲(chǔ)區(qū)非常適用于 KV 存儲(chǔ)場(chǎng)景,并平衡了性能和成本。對(duì)于 redis 占用大量存儲(chǔ)空間的冷數(shù)據(jù)降冷后可以最多減少 80% 的成本,同時(shí)保證了熱數(shù)據(jù)在 redis 的訪問(wèn)性能。

項(xiàng)目規(guī)劃

  • 持續(xù)完善對(duì) Redis 的兼容性,包括支持 LUA 等命令

  • 進(jìn)一步提升 Tendis 的性能,減少 rocksdb 本身的性能抖動(dòng)問(wèn)題。

  • 探索更多軟硬結(jié)合方案,基于新硬件特性,發(fā)揮更大的數(shù)據(jù)庫(kù)性能。

  • 支持異構(gòu)數(shù)據(jù)互通能力,降低異構(gòu)數(shù)據(jù)庫(kù)的遷移成本

  • 運(yùn)維管理能力全面提升,PaaS 能力持續(xù)增強(qiáng)

Tendis 目前已在騰訊內(nèi)外部包括游戲、視頻、社交、電商等多個(gè)行業(yè)提供數(shù)據(jù)庫(kù)支撐。

https://github.com/Tencent/Tendis

歡迎提出你的 issue 和 PR!

國(guó)內(nèi)鏡像地址:

https://git.code.tencent.com/Tencent_Open_Source/Tendis

廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:數(shù)據(jù)庫(kù),開(kāi)源,騰訊linux

軟媒旗下網(wǎng)站: IT之家 最會(huì)買(mǎi) - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會(huì)買(mǎi) 要知