写点什么

【TcaplusDB 小知识】TcaplusDB 的技术原理

用户头像
数据人er
关注
发布于: 54 分钟前
【TcaplusDB小知识】TcaplusDB的技术原理

数据库技术是通过研究数据库的结构、存储、设计、管理以及应用的基本理论和实现方法,并利用这些理论和方法来实现对数据库中的数据的处理、分析、转化等操作。 数据库技术作为计算机数据处理与信息管理系统的核心,研究和解决了计算机信息处理过程中大量数据有效地组织和存储的问题,在数据库系统中减少数据存储冗余、实现数据共享、保障数据安全以及高效地检索数据和处理数据。

在本篇文章中,将会介绍腾讯自研的分布式数据库 TcaplusDB 的技术原理。


存储原理

一个表通过 HASH 分表,按照路由数组长度(默认为 10k)进行取模运算分片(Mod Sharding),所以每张表最多可以分成 10k 个分片(Shard)。以下图为例,1 个 TcaplusDB 表被分为 5 个 Shard 文件分布到不同存储节点,每个结点分布有 1 个或多个分片的数据。 


图 3.1 TcaplusDB 存储技术示意图

3.2 系统扩容

TcaplusDB 扩容分别在存储层和接入层进行。从第 2 章节的架构图中,可以看到接入层即 Tcap Proxy 层,存储层即 Tcapsvr 层(主备节点)。对于接入层而言,采用的是无状态设计,所以可以灵活水平扩缩容,且不影响线上业务,对业务无感知 ; 对于存储层而言,由于表采用的是分片设计,在扩容时需要将原机器上的分片水平迁移到新机器上,达到扩容存储空间的目的。以图 3.2 为例,Table A 在扩容前,只有一个分片 Shard 1, 路由数组长度为 10k。在扩容时,将该表分为两个分片,其中路由项 0-5k 放在 Shard1 , 路由项 5001-10k 放在 Shard2,2 个 shard 分别存储到两个存储节点上。



图 3.2 存储节点扩容示意图

数据迁移过程见图 3.3,原 TcaplusDB Salve 节点上数据会复制到新的 TcaplusDB Master 节点,通过 binlog 同步保持数据完整性,接入层 tcapoxy 的数据请求重定向到新的 TcaplusDB 集群。



图 3.3 扩容后请求重定向示意图 接入层扩容,如图 3.4 所示,通过一致性哈希路由切换,将原来由 4 个 tcaproxy 负责转发的路由,平均分配给 5 个 tcaproxy,路由切换过程不会造成消息丢失。



图 3.4 接入层扩容示意图

TcaplusDB 的扩容基于存储节点的磁盘使用率和 QPS (Queries per Second) 2 个维度。当单台存储节点容量使用达到一定阈值后即触发扩容操作。


TcaplusDB 是腾讯出品的分布式 NoSQL 数据库,存储和调度的代码完全自研。具备缓存+落地融合架构、PB 级存储、毫秒级时延、无损水平扩展和复杂数据结构等特性。同时具备丰富的生态、便捷的迁移、极低的运维成本和五个九高可用等特点。客户覆盖游戏、互联网、政务、金融、制造和物联网等领域。

用户头像

数据人er

关注

还未添加个人签名 2021.03.09 加入

还未添加个人简介

评论

发布
暂无评论
【TcaplusDB小知识】TcaplusDB的技术原理