2023-12-13 TBase初介绍

第一部分 TBase产品功能及架构原理

一、TBase概述

1、TBase是腾讯云数据库团队自研的HTAP分布式数据库系统,其中,HTAP表示数据库集群同时具备OLAP和OLTP能力。
2、TBase的相关特性:
①分布式数据库;
②支持分布式事务;
③兼容PostgreSQL协议;
④跨节点复杂查询;
⑤面向OLTP应用;
⑥写可扩展(Write-scalable);
⑦分布式存储(Shared-nothing);
多主节点(Multi-master):集群在一个节点上的更新操作,会立即呈现到另一个数据库中;多个节点都可以提供完整一致的数据库视图;
⑨数据透明(Transparent)。
3、SQL兼容度
(1)兼容PostgreSQL语法;
(2)企业级数据库语法支持:
①支持存储过程、触发器、自定义函数、视图、物化视图、游标、全局序列、窗口函数、递归cte、全局分布式事务、分布式join。原生支持整数、浮点数、字符。
②支持time、date、datetime、bytea(二进制)、Json、Jsonb、XML、uuid、GIS(几何类型点、线、面),复合,范围以及全文搜索等数据类型,支持自定义数据类型。

二、TBase架构

TBase架构图

TBase采用分布式集群架构(如上图),该架构分布式无共享(share nothing)模式,节点之间相互独立,各自处理自己的数据,处理后的结果可以向上层汇总或在节点间流转,各处理单元之间通过网络协议进行通信,并行处理和扩展能力更好。

1、Coordinator

Coordinator(CN):协调节点,对外提供接口,负责数据的分发和查询规划,多个节点位置对等,每个节点都提供相同的数据库视图;在功能上CN只存储系统的全局元数据,并不存储实际的业务数据。

2、Data Node

Data Node(DN):数据节点,执行CN分发的执行请求,存储实际业务数据。DN节点存储空间彼此独立隔离,是标准的share nothing结构。

3、GTM

GTM:全局事务管理器(Global Transaction Manager),负责管理集群事务信息,不存储业务数据;负责生成严格递增的时间戳,用于保证全局一致性分布式事务。

CN&DN&GTM操作流程示例图

  • Step1:业务发送请求到CN节点,CN节点向GTM请求事务信息;
  • Step2:CN发送SQL语句和事务信息到DN;
  • Step3:DN执行完SQL后返回结果给CN;
  • Step4:CN收集DN的结果并汇总后返回给业务。

4、OSS

OSS系统是TBase分布式数据库系统配套使用的平台管理系统,集租户管理、服务器资源管理、项目管理、监控运维管理。其中,租户管理、服务器资源管理、项目管理是实现多租户管理配套组件;监控运维系统设计的主要目的是监控和维护TBase数据库,包括指标实时监控、告警,部分故障自动修复,在线扩容,数据搬迁等功能,与TBase数据库组成一套完整的体系,形成一个高效、稳定、可靠的分布式数据库系统。

5、Confdb

Confdb是一个单机版Postgresql数据库,采用主备高可用运行方式,主备节点部署在集群中的两部主机上面。Confdb记录当前OSS管理下的所有信息,如有哪些租户、哪些机器、哪些实例、实例的各种状态信息、当前任务、任务进度等内容。
Confdb的内容非常重要,当OSS重启时,Center需要依赖Confdb中的元数据信息恢复当前实例情况、资源分配情况、任务进度情况等。
当需要手动修改Confdb内容时,须提前做好备份。多个集群可以共用一个Confdb实例,每个集群对应该实例下的一个指标Database。
(1)安装路径:

/data/home/tbase/confdb/postgres
/data/tbase/confdb/postgres  #3100新版路径

(2)日志:

/data/home/tbase/confdb/postgres/pg_log

(3)默认端口:54321
(4)服务管理

sh tbase_mgr.sh start Confdb #启动
sh tbase_mgr.sh stop Confdb #停止
sh tbase_mgr.sh restart Confdb #重启
sh tbase_mgr.sh status Confdb #查询服务状态

(5)连接Confdb

psql -h 10.10.12.40 -p 54321 -U postgres -d postgres #password:postgres
\dt+ #查询所有表
select * from tbl_oss_center_switch;
select * from tbl_oss_db_switch_info; #查看切换详情
select * from tbl_oss_backup_global_conf; #查看备份配置
select * from tbl_oss_backup_inf; #查看备份详情
select * from tbl_oss_config_param; #查看全局配置
select * from tbl_oss_idc_info; #查看IDC信息;
select * from tbl_oss_node_name; #节点名称
select * from tbl_oss_node_status; #节点状态
select * from tbl_oss_node; #节点详情
select * from tbl_oss_server; #服务器列表
select * from tbl_oss_sys_info; #版本信息
select *  from tbl_oss_task_info; #任务信息

6、Center

Center是OSS的决策中心,设计为一主多备。备Center仅负责存储实例状态等信息,用于主Center在需要的时候进行校验。
通常Center只负责发起任务、监控任务进度,而具体任务的执行会由对应的agent完成。
(1)Center的作用:

  • 负责接受cgi的命令,并进行相应处理。如申请、初始化、回收、升级、重启等命令;
  • 负责管理所有机器资源,管理各实例的资源消耗,负责收集agent上报的所有实例信息,并向confdb上报;
  • 负责裁决是否发起主备切换。当主备Center都正常时,才能发起主备切换;
  • 负责发起全量备份。
    (2)安装路径:
/data/home/tbase/install/tbase_oss/

(3)端口:

  • Center服务默认的端口是8118;
  • CGI的默认port为8080。
    (4)日志:
/data/tbase/install/tbase_oss/tools/op

(5)服务管理:

cd /data/home/tbase/install/tbase_oss/tools/op
bash start.sh #启动
bash stop.sh #停止
bash status.sh #查看状态

(6)配置文件:

/data/home/tbase/install/tbase_oss/config/tbase_oss_conf.ini

注意:配置CenterMaster和CenterSlave的IP地址和PORT,CGI的IP地址和PORT,Center连接,Confdb的参数也在这里配置。

7、Agent

Agent是OSS具体任务的执行者。在每台物理机上都部署一个Agent(仅一个)。
具体操作实例的任务都需要由Agent来完成,如初始化、备份、重启、升级、回收、监控信息上报等。
(1)Agent的作用:

  • 负责完成Center通知的任务,并回复Center任务进度;
  • 负责监控Center通知监控的实例,并实时上报Center具体实例状态情况;
  • 负责收集实例监控数据(CPU、磁盘等消耗),并上报给监控平台;
  • 负责当实例异常时,对实例进行自动拉起。
    (2)安装路径:
/data/home/tbase/install/tbase_oss/

(3)配置文件路径:

/data/home/tbase/install/tbase_oss/config/

(4)日志:

/data/tbase/install/tbase_oss/logs

(5)服务管理:

cd data/home/tbase/install/tbase_oss/tools/op
bash start.sh #启动
bash stop.sh #停止
bash status.sh #查看状态

三、TBase分布式事务全局一致性

1、引入全局事务管理节点(GTM,Global Transaction Manager)专门处理分布式事务一致性。
2、自主专利的分布式事务一致性技术,包括:两阶段提交(Two Phase Commit)和全局时钟(Global Timestamp)策略。
3、对GTM效率和系统处理效率的优化:
①网络带宽优化,取消系统集群快照,改为逻辑时钟来判断事务的集群可见性,大幅减少对GTM的网络带宽占用,降低GTM的CPU占用;
②使用免锁队列取代原来的带锁队列,减少系统的锁使用;
编写用户态的互斥锁,使得CPU使用率只有原系统互斥锁的1/10,提升系统处理能力上限;
④通过线程资源复用的方式大大减少GTM的线程数据,减少系统调度CPU占用率。

四、TBase在线扩容能力

1、常规hash分表方式 VS TBase分表方式
(1)常规hash分表方式:

DN = Hash(row) % nofdn #nofdn即data node数量

存在的问题:当扩容后,节点数变多,每一行数据再对新的节点数取模时,数据的存储位置会与以前的值完全不同;此时,需要停止业务,将数据全部导出,扩容后再重新导入,造成业务中断时间较长。
(2)TBase引入的sharded table分表方法:
①引入中间层shard map,其中每一项存储逻辑地址(shardid)和物理地址(DN)映射关系;
②sharded table中的每条记录通过Hash(row) % #shardmap entry决定存储位置。当集群进行扩容时,总的服务器物理节点数增加了,但是总的shardid没有变化,所以只要将shardmap中的shardid映射到新加的节点上,再把对应的数据搬迁过去即可(shardmap对映射关系的切换)
③每个DN上分别存储被分配到本节点的shardid的信息,进而进行可见性的判断。

TBase引入的shardid table分表方法示例图

五、TBase多级容灾能力保证

1、支持故障自动转移:

  • 主节点故障,系统自动从对应的从节点中选出新的主节点,故障节点自动隔离;
  • 主从切换保证数据完全一致,满足金融及数据一致性要求;
  • 主从切换过程对用户透明,且全程不修改IP地址。
    2、跨可用区部署:
  • 节点的主机和从机可分处不同机房,通过专线网络实时复制。
    3、可设置禁止切换:
  • 即可以设置在某一特殊时期,不处理故障转移。
    4、故障恢复:
  • 故障节点可通过重做备机恢复;
  • 可以选择新物理节点添加备机;
    5、主从多副本:
  • 每组1主N从节点中每个节点都包含完整的数据副本,可以根据需求切换;
  • 通过强同步方式(主从节点均修改完成)进行数据的同步。
    6、支持全量备份和数据库日志备份:
  • 全量备份包括数据库某一时间的全部数据;
  • 数据库日志备份包括数据库每时每刻的增量数据。

六、TBase数据安全保障能力

1、TBase采用“三权分立”体系,将传统数据库的DBA角色分解为安全管理员、审计管理员、数据管理员3个相互独立的角色。
2、TBase的安全策略:
(1)策略1:数据加密

  • 业务侧加密;
  • 使用TBase内置加密功能,在加密力度上支持列级加密和文件加密。
    (2)策略2:数据脱敏访问
    (3)策略3:强制访问控制
    -TBase定义层级、部分和组织3个维度来描述复杂的组织关系,其中,层级为纵向控制;部门为横向控制;组织为树状结构,总节点可以访问下面各个节点的数据。
    TBase数据安全保障能力结构图

备注:以上内容主要来自腾讯云课堂相关课程内容。

上一篇:2023-12-12 TDSQL初介绍
下一篇:2023-12-14 TCE之Redis初介绍

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容