<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          騰訊自研的分布式高性能KV存儲(chǔ)開源了!

          共 1817字,需瀏覽 4分鐘

           ·

          2021-01-09 19:28


          項(xiàng)目簡(jiǎn)介

          Tendis是騰訊互娛CROS DBA團(tuán)隊(duì) & 騰訊云數(shù)據(jù)庫團(tuán)隊(duì)自主設(shè)計(jì)和研發(fā)的分布式高性能KV存儲(chǔ)數(shù)據(jù)庫,兼容Redis核心數(shù)據(jù)結(jié)構(gòu)與接口。

          可提供大容量、低成本、強(qiáng)持久化的數(shù)據(jù)庫能力,適用于兼容Redis協(xié)議、需要大容量且較高訪問性能的溫冷數(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)都擁有全部的路由信息,用戶可以訪問集群中的任意節(jié)點(diǎn),并且通過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)之間通過binlog實(shí)現(xiàn)數(shù)據(jù)復(fù)制。

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

          適用場(chǎng)景

          • 兼容Redis協(xié)議,需要大容量且較高訪問性能的溫冷數(shù)據(jù)存儲(chǔ)場(chǎng)景
          • 適合成本為主要考慮因素,業(yè)務(wù)數(shù)據(jù)有高持久化要求的業(yè)務(wù)場(chǎng)景
          • 解決原生Redis固有的fork問題而預(yù)留部分內(nèi)存問題

          主要特性

          兼容Redis協(xié)議

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

          持久化存儲(chǔ)

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

          去中心化架構(gòu)

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

          水平擴(kuò)展

          集群支持增刪節(jié)點(diǎn),并且數(shù)據(jù)可以按照slot在任意兩節(jié)點(diǎn)之間遷移,擴(kuò)容和縮容過程中對(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的訪問性能。

          Tendis 存儲(chǔ)版 vs Redis?cluster

          優(yōu)點(diǎn):

          • 所有數(shù)據(jù)存儲(chǔ)到磁盤,提供更大的容量和更低的成本,數(shù)據(jù)可靠性更高

          • 多線程架構(gòu),單進(jìn)程的性能吞吐比redis單進(jìn)程更高(30wQPS vs 13wQPS)

          • 獨(dú)立的gossip網(wǎng)絡(luò)線程,支持更多的節(jié)點(diǎn)通訊,支持更大規(guī)模的集群

          • 更強(qiáng)大的數(shù)據(jù)搬遷能力,原redis cluster的搬key實(shí)現(xiàn),如果遇到大key,會(huì)導(dǎo)致比較惡劣的全局阻塞

          • 基于rocksdb的鏡像和完善的binlog實(shí)現(xiàn),支持任意時(shí)間點(diǎn)的回檔,社區(qū)版redis暫無這個(gè)能力

          • 支持增量復(fù)制及復(fù)制斷開斷點(diǎn)續(xù)傳,redis復(fù)制斷開需要全量復(fù)制

          缺點(diǎn):

          • 對(duì)比純內(nèi)存的redis,Tendis存儲(chǔ)版的延時(shí)更大

          • 部分命令還不支持(LUA, pubsub, geo等),正在完善中

          • 對(duì)于單key更新,由于Tendis存儲(chǔ)版內(nèi)部并發(fā)控制,無法發(fā)揮多線程的優(yōu)勢(shì),會(huì)退化為單線程,性能較低


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

          • 持續(xù)完善對(duì)Redis的兼容性,包括支持LUA等命令
          • 進(jìn)一步提升Tendis的性能,減少rocksdb本身的性能抖動(dòng)問題。
          • 探索更多軟硬結(jié)合方案,基于新硬件特性,發(fā)揮更大的數(shù)據(jù)庫性能。
          • 支持異構(gòu)數(shù)據(jù)互通能力,降低異構(gòu)數(shù)據(jù)庫的遷移成本
          • 運(yùn)維管理能力全面提升,PaaS能力持續(xù)增強(qiáng)

          Tendis目前已在騰訊內(nèi)外部包括游戲、視頻、社交、電商等多個(gè)行業(yè)提供數(shù)據(jù)庫支撐。感興趣的童鞋可以去GitHub詳細(xì)了解一下:

          https://github.com/Tencent/Tendis

          推薦??:?Github掘金計(jì)劃:Github上的一些優(yōu)質(zhì)項(xiàng)目搜羅

          推薦??:啪地一下,很快啊!已經(jīng) 一年了!

          我是Guide哥,Java后端開發(fā),擁抱開源,喜歡烹飪,自由的少年。一個(gè)喜歡讀者面試經(jīng)驗(yàn)的技術(shù)人。我們下期再見!

          瀏覽 49
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  一道本一二三区 | 无码精品一区二区三区四区五 | cao人妻自拍 | 人人玩人人草 | 免费av国产 |