亚信安慧AntDB-T数据库重分布的实现原理

摘要:

亚信安慧AntDB-T是一款通用企业级、高可用、高性能的原生分布式关系型数据库,具有多种分片方式。在数据库的使用过程中,随着数据的变更和增长,需要重新修改表的分片方式。

AntDB-T数据库支持重分布命令,在内核中有两种实现方式,本文主要针对通过既有的一些SQL命令来实现重分布的内部实现进行介绍。

AntDB-T的分片方式介绍

AntDB-T目前支持以下四种分片方式:

  • 复制表(replication)

  • Hash分片表

  • Modulo分片表

  • Random分片表

复制表在每个分布节点上都有一份完整的表数据,而其他三种分片表,表数据会根据相应的规则,散列在多个节点上。

AntDB-T重分布功能介绍

AntDB-T支持以下几种类型的数据重分布:

  • replication修改为hash、modulo、random

  • hash 修改为 random、modulo、replication

  • modulo 修改为 hash、random、replicaiotn

  • random 修改为 hash、modulo、replication

  • add node --增加分布节点

  • delete node --减少分布节点

  • to node (nodelist) --重新设置分布节点

对应的重分布命令如下:

  • ALTER TABLE name DISTRIBUTE BY distri_type

  • ALTER TABLE name ADD NODE (node_name[, … ])

  • ALTER TABLE name DELETE NODE (node_name[, … ])

  • ALTER TABLE name to node (node_name[, … ])

重分布的内部实现

AntDB-T内核有两种实现重分布的方式,其中一种是通过既有的一些SQL命令来实现的,本文主要就该方式进行一个说明。

在AntDB-T数据库中,表的分布方式及分布的节点信息是存储在coordinator节点的表分布元数据表中的,如图1。重分布的主要处理流程就是修改计算表分布元数据表,并按照新的分片方式,将数据重新分布到各个节点上。

图片

图1:计算节点元数据示例

综上所述,这里是通过一些SQL命令来实现表数据的重分布,我们将这些SQL命令分为两种,一种需要在修改表分布元数据之前执行,类型是CATALOG_UPDATE_BEFORE;另一种是在修改表分布元数据之后执行,类型是CATALOG_UPDATE_AFTER。

下面针对不同的重分布方式进行内部实现的具体分析。

1、通用的做法

  • 首先,首先生成一个copy to命令,在修改表分布元数据之前,将所有的表数据拷贝到coordinator节点。

  • 其次,生成truncate命令,将所有节点的表数据进行删除。

  • 接着,按照重分布命令,修改表分布元数据,修改为最终需要的分片方式。

  • 最后,生成一个copy from命令,将拷贝到coordinator节点的数据按照新的分片规则,下发到相应的datanode节点。

图片

图2:通用重分布流程

以上的流程适合所有的重分布命令,但是有几种情况可以简化一些流程,提高重分布的效率,对于这些场景,在下面会逐一介绍。

2、复制表增加节点

对于复制表的增加节点,没有必要truncate所有节点的数据。具体执行流程如下:

  • 首先,生成一个copy to命令,在修改表分布元数据之前,将表数据拷贝到coordinator节点。

  • 其次,修改表分布元数据。

  • 最后,生成一个copy from命令,将拷贝到coordinator节点的数据按照下发到新增的节点。

图片

图3:复制表增加节点

3、复制表减少节点

对于复制表的减少节点,只需要truncate掉对应节点的数据就可以了,没有必要去拷贝数据。

图片

图4:复制表减少节点

4、复制表修改为hash、modulo分片表

复制表在所有datanode节点上都有完整的数据,当需要修改为hash或者modulo分片表时,datanode节点只需要删除不属于本节点的数据即可。

在修改表分布元数据后,我们根据新的分片方式生成每个节点对应的delete命令,datanode节点执行这些命令,就实现了重分布的目的。

图片

图5:复制表修改为hash、modulo分片表

结论

本文介绍了AntDB-T数据库重分布命令内部实现的一种方式,内核中提供了重分布命令后,用户不需要再手动导入导出数据、重建表等操作,一个命令即可实现重分布的功能。

关于亚信安慧AntDB数据库

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/806783.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用docker制作Android镜像(实操可用)

一、安装包准备 1、准备jdk 下载地址:Java Downloads | Oracle 注意版本!!!!!! 我下载的jdk17,不然后面构建镜像报错,就是版本不对 2、准备安装的工具包 ttps://dev…

迭代器模式【行为模式C++】

1.简介 迭代器模式是一种行为设计模式, 让你能在不暴露集合(聚合对象)底层表现形式 (列表、 栈和树等) 的情况下遍历集合(聚合对象)中所有的元素。 迭代器的意义就是将这个行为抽离封装起来&a…

C语言中的数据结构--链表的应用1(2)

前言 上一节我们学习了链表的概念以及链表的实现,那么本节我们就来了解一下链表具体有什么用,可以解决哪些实质性的问题,我们借用习题来加强对链表的理解,那么废话不多说,我们正式进入今天的学习 单链表相关经典算法O…

【CSS】利用Vue实现数字翻滚动画效果

利用Vue实现数字翻滚动画效果 在很多数据可视化的需求中,动态呈现数据变化是一个常见且具有较强视觉冲击力的手段,尤其是数字的实时变化。今天我们将探讨如何使用 Vue.js 和 CSS3 来实现数字的翻滚动画效果,即模拟真实物体在Z轴上翻动的效果…

WPS 365开启企业一站式AI办公;联发科推出生成式AI服务平台;马斯克:AI 明年或超越人类智力

WPS 365 升级一站式 AI 办公 昨日,金山办公生产力大会举行,现场发布了面向组织和企业的办公新质生产力平台 WPS 365,其包含升级的 WPS Office、最新发布的 WPS AI 企业版和 WPS 协作。 WPS 365 将能覆盖一个组织日常办公基本需求&#xff0c…

Java快速入门系列-6(数据库编程与JDBC)

第六章:数据库编程与JDBC 6.1 SQL基础6.1.1 SQL基本结构与命令6.1.2 SQL高级查询6.1.3 SQL子查询与联接6.2 JDBC原理与使用6.2.1 JDBC驱动程序与URL6.2.2 Statement、PreparedStatement与CallableStatement6.2.3 数据库事务处理6.3 数据库连接池6.4 事务管理6.1 SQL基础 SQL(…

2. Spring的创建和Bean的存取

经过前面的学习我们已经大体明白了 IOC 思想以及它的实现方式 DI ,本节要讲的是如何Spring框架实现实现DI。 本节目标: Spring(Core) 项目创建将对象存储到 Spring 中将对象(bean)从 Spring 中取出 1. 创建 Spring 项目 与开篇演示的 Spring Boot 项目不…

TiDB MVCC 版本堆积相关原理及排查手段

导读 本文介绍了 TiDB 中 MVCC(多版本并发控制)机制的原理和相关排查手段。 TiDB 使用 MVCC 机制实现事务,在写入新数据时不会直接替换旧数据,而是保留旧数据的同时以时间戳区分版本。 当历史版本堆积过多时,会导致读…

在Linux终端查找指定类型的文件并统计数量

下面举例说明: find /path/to/directory -type f -exec file {} \; | grep "MIDI"它的作用是在指定的目录(/path/to/directory)中搜索所有的文件(-type f),然后使用file命令检查每个文件的类型&a…

【C++学习】C++11新特性(第二节)—— 右值引用与移动语义超详解

文章目录 文章简介二.右值引用1.什么是左值,什么是右值?什么是左值引用,什么是右值引用?2.左值引用与右值引用比较 三.右值引用使用场景和意义1.左值引用的使用场景:2.左值引用的短板:3.右值引用与移动构造…

Axure RP中的相关概念及高保真原型构建方法

1 Axure RP中概念介绍 对于构建高保真原型来说,需要知道事件(Event)、Case、Action等概念。Axure RP中给出这些概念,是为了方便原型的构建,尤其是高保真原型的构建。 事件(Event)是附着于控件…

PHP自助建站系统,小白也能自己搭建网站

无需懂代码,用 自助建站 做企业官网就像做PPT一样简单,您可以亲自操刀做想要的效果! 自助建站是一款简单、快捷、高效的工具,可以帮助您制作响应式网站。我们的自助建站系统,将传统的编码工作转化为直观的拖拽操作和文…

buuctf之jarvisoj_level2

一、查看属性 首先还是必要的查看属性环节: 可以知道该文件是一个x86架构下的32位小段ELF程序,开启了栈不可执行(NX)保护,ret2shellcode是不行的 简单执行可以看到有一个简单的输入后输出hello world 二、静态分析 …

程序员学CFA——数量分析方法(二)

数量分析方法(二) 数理统计基础统计学的基本概念描述性统计学与推断性统计学总体与样本四种度量尺度名义尺度排序尺度区间尺度比率尺度 数据的展现频率分布直方图与频数多边形 中心趋势均值算术平均几何平均调和平均数加权平均 中位数众数 离散程度绝对离…

Vue2(十五):replace属性、编程式路由导航、缓存路由组件、路由组件独有钩子、路由守卫、history与hash

一、router-link的replace属性 1、作用:控制路由跳转时操作浏览器历史记录的模式 2、浏览器的历史记录有两种写入方式:分别为push和replace,push是追加历史记录,replace是替换当前记录。路由跳转时候默认为push 3、如何开启repla…

【40分钟速成智能风控8】智能反欺诈模型2

目录 ​编辑 智能反欺诈模型 图计算 智能信用风险模型 专家模型 逻辑回归 决策树 集成树 深度神经网络 循环神经网络 智能反欺诈模型 图计算 图计算(Graph Computing)是以关联图谱为基础引申出来的一类算法的统称,主要解决了图数…

windows linux服务器 以及Azure平台 密码策略配置

密码策略配置 windows 服务器Ubuntu 服务器安装libpam-pwquality密码质量检查库设置密码过期的天数密码策略限制使用过去使用过的密码 centos 7 服务器设置密码过期的天数设置最小密码长度限制使用过去使用过的密码 Azure云默认密码策略 windows 服务器 WinR或右键开始—运行—…

头歌-机器学习 第12次实验 Adaboost算法

第1关:什么是集成学习 任务描述 本关任务:根据本节课所学知识完成本关所设置的选择题。 相关知识 为了完成本关任务,你需要掌握:1.什么是集成学习。 什么是集成学习 集成学习方法是一种常用的机器学习方法,分为b…

Vue2.x实现商城购物车

1.实现购物车页面 在页面中显示购物车中的商品信息,并能进行数量增减及商品删除操作,购物车中金额也随商品数量的变化而变化 2.创建cart.html页面 创建cart.html页面,在其中创建Vue实例,实例中首先准备一些商品信息以供显示&a…