数据库技术是通过钻研数据库的构造、存储、设计、治理以及利用的根本实践和实现办法,并利用这些实践和办法来实现对数据库中的数据的解决、剖析、转化等操作。
数据库技术作为计算机数据处理与信息管理系统的外围,钻研和解决了计算机信息处理过程中大量数据无效地组织和存储的问题,在数据库系统中缩小数据存储冗余、实现数据共享、保障数据安全以及高效地检索数据和解决数据。

在本篇文章中,将会介绍腾讯自研的分布式数据库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级存储、毫秒级时延、无损程度扩大和简单数据结构等个性。同时具备丰盛的生态、便捷的迁徙、极低的运维老本和五个九高可用等特点。客户笼罩游戏、互联网、政务、金融、制作和物联网等畛域。