美文网首页
2023-12-13 TBase初介绍

2023-12-13 TBase初介绍

作者: 一位被理工耽误的文艺范打工人 | 来源:发表于2023-12-13 11:08 被阅读0次

第一部分 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初介绍

相关文章

  • 初介绍

    阿白不好意思再待在这了,转身回座位,他向另一边转身的,怕再看到那迷人的笑容,整个脸就红了。回到座位,他看了看时间什...

  • 初盈产品介绍

    初盈卖的不是产品,卖的是高科技和未来。 初盈的三款单品主要的成分都是JB-EGF。 水动力喷雾是主要成分是E...

  • 《整体养育》初介绍

    一、作为读书群6月共读的《整体养育》,你可以在哪些渠道获得? 1、可以在当当、京东购买实体书,也可以在香子的视频号...

  • 《奇思二十一门》总目录

    本书介绍 -----初门篇·始----- 初入门【顺序门/应跳门...

  • UIPageViewController的初介绍(1) ---A

    简单介绍:UIPageViewController是iOS 5 开始的分页控制器。使用分页控制器(UIPageVi...

  • Vue.js初介绍

    想要学什么首先要知道这个东西是个啥,所以首先介绍一下vue是什么: 引自wiki百科:Vue.js([/vjuː/...

  • 《初尝Project》课程介绍

    申明:这是一篇广告文。 讲师:游峰 适用人群:初次接触项目管理,或对Project不太会使用的朋友。学习目标:【对...

  • 初来报道,自我介绍

    计划写这篇文章很久了,直到现在终于有时间来写这篇文章。 大概去年年底的时候,接触到简书这个APP,那会并没有真正的...

  • 初沫的夏人物介绍

    杨初沫:17岁,羽洛高中二年级学生,羽洛:彩翼术。真实身份是沙拉斯巴碎片,是可可娜的另外一半。 林薰依:17岁,羽...

  • 初宜战队自我介绍

    大家好,非常高兴能认识大家,我是姚桦,来自四川成都,成都是一个你来了就不想走的地方,是大熊猫的故乡,也是慢节奏的...

网友评论

      本文标题:2023-12-13 TBase初介绍

      本文链接:https://www.haomeiwen.com/subject/lyjvgdtx.html