騰訊 Tendis 正式開源:企業級分佈式高性能 KV 存儲數據庫

IT之家12月22日消息 近期,騰訊宣佈企業級分佈式高性能 KV 存儲數據庫 Tendis 正式開源。

IT之家獲悉,Tendis 是騰訊互娛 CROS DBA 團隊 & 騰訊雲數據庫團隊自主設計和研發的分佈式高性能 KV 存儲數據庫,兼容 Redis 核心數據結構與接口,可提供大容量、低成本、強持久化的數據庫能力,適用於兼容 Redis 協議、需要大容量且較高訪問性能的温冷數據存儲場景。Tendis 目前已經被應用到騰訊內、外部大型項目中。

集羣架構

騰訊 Tendis 正式開源:企業級分佈式高性能 KV 存儲數據庫

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

https://github.com/Tencent/Tendis

歡迎提出你的 issue 和 PR!

國內鏡像地址:

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

版權聲明:本文源自 網絡, 於,由 楠木軒 整理發佈,共 1410 字。

轉載請註明: 騰訊 Tendis 正式開源:企業級分佈式高性能 KV 存儲數據庫 - 楠木軒