【AntDB数据库】AntDB数据库核心功能(一)

118 篇文章 0 订阅
97 篇文章 2 订阅

核心功能

水平扩展

传统的分布式集群存储扩容方案中,需要进行数据迁移,而数据迁移时是禁止对数据进行操作。数据量大的时候,迁移时间就会比较长,这样就影响了数据库的可用性。AntDB提供了hot expasion扩容方案,将数据原有的数据迁移分成数据同步和路由切换两个阶段,从而解决了这个问题。

在数据同步阶段,通过热备和流复制技术,保证新增节点增量追加源节点数据,不对表加锁,不影响数据库集群对外提供服务。

当新增节点与源节点数据同步时间在秒级时,进入路由切换阶段。锁住集群,暂停集群对外服务,等待并确认源节点与新增节点数据一致后,修改访问路由,最后解锁集群,恢复集群对外服务。

通过以上机制,AntDB在进行扩容时对集群可用性的影响时间,从整个数据迁移阶段缩小到路由切换阶段,由于路由切换正常在10秒内可以完成,从而极大的减少扩容对集群可用性的影响。

分布式事务

AntDB使用2PC来保证(Two-Phase Commit, 2PC)来实现分布式事务。2PC分两个阶段:第一阶段,协调者询问参与者事务是否可以执行,参与者回复同意(本地执行成功),回复取消(本地执行失败)。第二阶段,协调者根据第一阶段的投票结果进行决策,当且仅当所有的参与者同意提交事务时才能提交,否则回滚。

2PC在AntDB中的实现如下:

(1)CN1从GTM请求并获得,集群全局SnapShot。

(2)CN1从GTM请求并获取,集群全局唯一TransactionID 事务号100。

(3)CN1到DN1上对用户A减去50元。同时到DN2上对B用户加上50元。

(4)CN1分别操作A和B用户的数据成功后,需要提交该事务。两阶段的第一阶段,分别到DN1和DN2 预提交。即prepare Transaction T100。

(5)DN1和DN2都能预提交成功并且返回成功ACK。

(6)CN1本地结束事务号100。

(7)CN1分别到DN1和DN2上进行两阶段的第二阶段,真正的提交T100。

(8)DN1和DN2提交成功并且返回ACK。

如果第5步,任何一个节点返回预提交失败,第6,7 分别需要本地rollback,和两阶段第二阶段rollback prepared T100。通过这样就能实现两个或多个节点,同时成功或同时失败。

分层存储

AntDB分布式内存数据库支持以下两种存储结构:

  • 内存
  • 磁盘

内存包括通用的DDR内存,以及近年涌现的PMEM持久内存。相比DDR内存,MEM持久内存,适用于要求高性能的缓存业务,与全内存运行相比在牺牲一定响应时间的同时,可以获得更高的性价比。

AntDB分布式内存数据库可以通过建表语句指定表单数据的存储介质,目前支持的枚举包括“HOT”和“COLD”两种,从业务视角区分数据的冷、热程度以及存储方式。以交易类系统为例,在实际使用过程中,可以将与实时交易过程紧密相关的资料数据、资产数据相关表设定为“HOT”,这部分数据常驻内存,提供极高的访问速率与极低的延时,而针对庞大的运行日志数据则设定为“COLD”,这部分数据存储到廉价的磁盘整列,即不影响数据的访问,又可以提供整体数据库建设方案的性价比。

切换策略的设定。AntDB分布式内存数据库在支持多种存储引擎的同时,可以支持表单级的跨存储切换。交易类流水数据在业务上又一个渐冷的过程,例如近期的交易流水查询率较高,不能直接归入冷数据,但超过一定时间的交易流水几乎只有审查的作用,对实时交易过程并没有太多作用。针对这一类场景AntDB分布式内存数据库可以指定表单加条件的切换策略,如trans_yyyymmdd类的交易流水表,以时间轴为条件,定期进行存储的切换。这个过程是自动化的,过程无需人工干预。

多租户

AntDB提供多租户能力。租户是数据库集群和资源管理的基础。一个租户下面可以包含多个数据库集群,一个集群只属于一个租户。租户之间是完全隔离的。在数据安全方面,租户之间的数据不能相互访问。在资源方面,租户下的数据库分享租户的资源配额,每个数据库副本使用的资源为一个资源单元。

资源接入

资源管理层接入资源后,这些主机分属于若干个可用区(Zone),每台主机属于一个可用区。可用区是个逻辑概念,表示具有相似硬件可用性的一组节点,它在在不同的部署模式下代表不同的含义。

例如,当主机在同一个数据中心(IDC)内的时候,一个可用区的节点可以属于同一个机架,同一个交换机等。当分布在多个数据中心的时候,每个可用区可以对应于一个数据中心。每个可用区具有 IDC 和地域(Region)两个属性,描述该可用区所在的 IDC 及 IDC 所属的地域。一般地,地域指 IDC 所在的城市。可用区的 IDC 和 Region 属性需要反映部署时候的实际情况,以便数据库集群的自动容灾处理和优化策略能更好地工作。根据业务对数据库系统不同的高可用性需求,DBOPS提供了多种集群的部署模式,参见6.2.2。

租户的资源分配

在租户创建后,可以将接入的资源分配给租户。资源包括CPU、内存、磁盘等。资源分配的时候,可以不指定地域和可用区仅指定量的大小,也可以指定具体的主机列表,列表内的主机CPU、内存、磁盘都归该租户所有。租户分配的资源为租户内所有集群共享。

在给租户分配资源之后,可以创建资源单元。资源单元用于描述CPU、内存、存储空间的规格。例如8Core CPU、16G内存、500G磁盘。资源单元用于限制每个分片进程的资源占用情况。

集群部署

在数据库集群部署的时候,需要选择CN和DN的资源单元。同一集群内的CN和DN对资源的要求不同,可采用2种不同的资源单元,单机版的只需要选择一个资源单元。

资源监控

资源的监控包括了:

  • 系统总体可用资源及资源的使用情况
  • 租户可用资源及资源的使用情况
  • 单主机的资源及资源使用情况

AntDB数据库始于2008年,在运营商的核心系统上,为全国24个省份的10亿多用户提供在线服务,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔电信核心交易,保障系统持续稳定运行近十年,并在通信、金融、交通、能源、物联网等行业成功商用落地。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值