腾讯 Tendis 正式开源:企业级分布式高性能 KV 存储数据库

2020-12-22 11:35IT之家 - 骑士

IT之家12月22日消息 近期,腾讯宣布企业级分布式高性能 KV 存储数据库 Tendis 正式开源。

IT之家获悉,Tendis 是腾讯互娱 CROS DBA 团队 & 腾讯云数据库团队自主设计和研发的分布式高性能 KV 存储数据库,兼容 Redis 核心数据结构与接口,可提供大容量、低成本、强持久化的数据库能力,适用于兼容 Redis 协议、需要大容量且较高访问性能的温冷数据存储场景。Tendis 目前已经被应用到腾讯内、外部大型项目中。

集群架构

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

广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。

文章价值:
人打分
有价值还可以无价值
置顶评论
    热门评论
      文章发布时间太久,仅显示热门评论
      全部评论
      一大波评论正在路上
        取消发送
        软媒旗下人气应用

        如点击保存海报无效,请长按图片进行保存分享