【深入理解TcaplusDB技术】TcaplusDB技术原理

TcaplusDB 是腾讯自主研发的NOSQL数据库,本文介绍其技术原理。

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


存储原理

一个表通过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分别存储到两个存储节点上。


                                            【深入理解TcaplusDB技术】TcaplusDB技术原理

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

                                            【深入理解TcaplusDB技术】TcaplusDB技术原理

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

                                            【深入理解TcaplusDB技术】TcaplusDB技术原理

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



                                            【深入理解TcaplusDB技术】TcaplusDB技术原理

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