华为云大数据存储的冗余方式是三副本_华为TaurusDB技术解读(转载)

近日,华为云自研关系型数据库 Taurus 公开亮相。作为华为云自研的最新一代云原生分布式数据库,Taurus 完全兼容 MySQL 8.0,采用计算与存储分离、日志即数据的架构设计,支持 1 写 15 读,性能达到原生 MySQL 的 7 倍。

性能达到原生MySQL七倍,华为云Taurus技术解读 - InfoQ​www.infoq.cn
7b51200f0507e9429246cebacbc77eee.png

过去多年,数据库技术本质上并没有出现颠覆式发展。作为核心基础设施,数据库是一款用户粘性非常高的产品,一旦核心业务数据落定,企业轻易不会尝试更换,因此很长一段时间内,大众习惯于老牌 IT 厂商垄断数据库市场的状况。然而,云厂商涉足数据库领域的消息近年层出不穷,比如 AWS Aurora、阿里云 PolarDB 以及华为云 Taurus。

在互联网、移动和物联网等新场景之下,图片、音频、视频等非结构化数据开始出现爆炸性增长,传统数据库不堪重负,企业客户急切需要新的数据库产品。在云计算技术不断成熟的背景之下,云数据库开始崛起,并因为按需扩展、按需付费等特性获得大量中小企业及互联网客户的拥护。

从云厂商的入局也不难看出,现在做数据库的门槛并不像从前那么高,并不只有传统的数据库厂商可以做,单就这一领域的创业者也不少。在这种情况下,核心竞争力只可能从差异性发展而来,人人都在做且会做的东西很难形成核心竞争力。据此,华为云近日公开亮相的自研关系型数据库 Taurus 有什么不同?核心竞争力是什么?为什么性能足以达到原生 MySQL 的 7 倍?与云上 MySQL 相比,后者的不足之处有哪些?华为云进行了哪些修补?

云原生数据库技术趋势

传统的数据库体系结构已有 30 多年的历史,专为本地部署,本地存储和单机数据库实例而设计和优化,此后很长一段时间内,该体系结构未针对公有云环境进行优化。在公有云环境下,计算和存储通过网络分离以支持多租户数据库实例并 scale out 向两端扩展;并不要求单个节点的高可靠性。

举例来说,假设一个本地数据库的每个数据库实例都有本地存储,为了支持高可用性,通常部署一个备实例并使用数据库内部复制机制将数据库日志(MySQL binlog)发送到备实例重建数据库副本。目前,大多数云厂商都采用类似机制来支持云数据库高可用性。但是,这种内部复制机制并没有利用云存储已经通过存储层复制提供的可靠性,这导致大量存储和带宽浪费。实际上,备数据库实例可以通过云存储与主实例共享数据,不仅可以节省磁盘空间和带宽,还可以为云数据库服务提供快速 RTO。

很明显,在将传统数据库迁移上云时,需要重新设计和优化数据库系统。过去几年,主要云供应商,比如 AWS 和阿里云,已经做了部分工作。预计未来几年,更多云和数据库供应商将遵循这一趋势,构建某种形式的云原生数据库技术。此外,Gartner 预测,到 2019 年,90%的云数据库架构将支持计算和存储分离。

值得注意的是,除了基于云环境的数据库架构重新设计之外,这一领域还存在两大趋势:

  • 在云原生数据库中利用新硬件:如新硬件和 RDMA。这些都是活跃的研究领域,然而除了充当缓存和计算机与存储之间的快速链接之外,到目前为止,我们还没有看到任何其他的突破性。
  • 基于即时和历史收集的数据,使用 ML(机器学习)和统计技术来帮助管理和自我调整云数据库,包括但不限于数据库实例自动伸缩和参数设置和自动 调整,异常检测等。

云上 MySQL 的不足

当前,对于 RDS for MySQL,各大云厂商基本都采用主备高可用模式、主备间使用 Binlog 复制,该架构下每添加一个从库都需要全栈式资源,这导致了一些问题:

1、资源浪费

备库往往不承担流量;复制线程会消耗主库 / 从库计算资源,造成计算资源浪费;EVS 的 3 副本冗余机制下,N 个备库最大需要 3*(N+1) 个副本,造成存储资源浪费以及多种数据需要走存储网络进行刷盘,造成网络资源浪费等。

2、扩展性不佳

添加只读时需要拷贝数据,重放 binlog,对于大数据量情况下速度很慢,尤其是采用本地盘方案。主从复制延迟问题会让主备倒换受影响,难以保证 RTO。此外,采用物理备份、逻辑备份时备份恢复速度很慢, 1T 以上数据量都以小时计,使得数据库扩展性受限。

5b8be535e68016cd1302650ab584caec.png

华为云 RDS 架构演进

华为云 Taurus 与 Amazon Aurora 数据库进化的方向是一致的,然而进化路径各有不同,这是由各自的数据库云服务实现方式不同所决定的。华为云 RDS MySQL 有如下几个版本,这些产品形态满足不同的用户业务场景,具有不同的特点,可以进行优势互补。

MySQL 单机版

MySQL 单机版采用数据库计算节点和存储节点分离的方式,利用云盘数据本身的可靠性和多副本的特性,同时也利用 ECS 云服务器虚拟化来提升标准化部署、版本和运维管理效率,能够满足低端用户不太注重高可用服务的业务场景。

MySQL 主备版

MySQL 高可用版则是针对企业级用户提供的高可用数据库版本,提供 99.95% 的 SLA 保障。采用 Active-Standby 高可用架构,主节点和备节点之间通过 MySQL Binlog 进行数据 Replication。当主节点发生故障,备节点接管服务。同时还支持最多 5 个只读节点,支持负载均衡的数据读写分离的访问方式。

MySQL 金融版

MySQL 金融版是针对金融行业等高端用户设计的高可用、高可靠云服务产品。一主两备三节点架构,可跨 AZ 部署,任意一台服务器宕机不影响业务可用性;基于 Paxos 协议,实现了分布式下数据的强一致性,拥有更加优异的故障恢复时间,满足数据容灾备份等业务场景的需求。

Taurus 的进化

华为云 RDS 架构演进

华为云 Taurus 与 Amazon Aurora 数据库进化的方向是一致的,然而进化路径各有不同,这是由各自的数据库云服务实现方式不同所决定的。华为云 RDS MySQL 有如下几个版本,这些产品形态满足不同的用户业务场景,具有不同的特点,可以进行优势互补。

MySQL 单机版

MySQL 单机版采用数据库计算节点和存储节点分离的方式,利用云盘数据本身的可靠性和多副本的特性,同时也利用 ECS 云服务器虚拟化来提升标准化部署、版本和运维管理效率,能够满足低端用户不太注重高可用服务的业务场景。

MySQL 主备版

MySQL 高可用版则是针对企业级用户提供的高可用数据库版本,提供 99.95% 的 SLA 保障。采用 Active-Standby 高可用架构,主节点和备节点之间通过 MySQL Binlog 进行数据 Replication。当主节点发生故障,备节点接管服务。同时还支持最多 5 个只读节点,支持负载均衡的数据读写分离的访问方式。

MySQL 金融版

MySQL 金融版是针对金融行业等高端用户设计的高可用、高可靠云服务产品。一主两备三节点架构,可跨 AZ 部署,任意一台服务器宕机不影响业务可用性;基于 Paxos 协议,实现了分布式下数据的强一致性,拥有更加优异的故障恢复时间,满足数据容灾备份等业务场景的需求。

Taurus 的进化

65314483da2f81037112bc4ddf12f325.png

Taurus 采用计算与存储解耦的技术架构,同时可以最多支持 15 个只读节点。主节点和只读节点之间是 Active-Active 的 Failover 方式,计算节点资源得到充分利用,由于使用共享存储,进一步降低了用户使用成本。

Taurus 的设计思想有几个大的革新:

  • 将部分计算能力卸载到存储节点
  • 软硬件深度优化,充分利用 RDMA 网络、NVME SSD 等硬件优势
  • 日志即数据,与传统 RDS for MySQL 相比,不再需要刷 page,所有更新操作都记录日志,不再需要 double write,减少了网络通信。

另外在 DB Server 设计上,完全拥抱开源生态,完全兼容 MySQL 8.0。

华为云 Taurus 和 Amazon Aurora 的一个共同设计哲学就是,先推出一写多读的版本,根据市场需求,适时推出多写版本,满足绝大多数 OLTP 应用场景和性能要求。

Taurus 架构设计原则:

  • 采用华为下一代云存储(DFV)作为快速,可扩展,可靠和共享数据库存储。不复制存储层中的已有功能,例如,数据复制,跨 AZ 可靠性,数据清理。
  • 单个数据库集群应该只需要一份足够可靠的数据库副本集。所有只读副本共享存储在云存储中,甚至跨 AZ,数据库层中没有逻辑复制。一写多读,没有独立的备用实例。主节点发生故障转移时,只读副本可以切换到接管主服务器。
  • 记录为数据库。仅顺序写入以最小化 SSD 磨损(避免写入放大)
  • 只有数据库日志通过网络从数据库计算机节点写入 DFV 存储层。没有页面检查点和刷新跨网络,没有双重写入。基于 DFV 存储层内的数据库日志重建数据面,以避免繁重的网络流量。
  • 基于跨 DFV 存储节点的切片策略对数据库进行分区,以支持大型数据库卷。单个 DFV 存储节点管理来自不同数据库集群实例的多个分片,实现存储容量和处理能力的无限扩展。

Taurus 数据库关键技术点剖析

aa7c911f05b2ecd2f890cf01f8963ecb.png

Taurus 架构

如图所示,Taurus 是一个分布式集群架构设计,采用计算与存储分离的设计理念,满足公有云计算环境下用户业务弹性扩展的刚性需求。数据库计算节点和存储节点之间采用高速网络互联,并通过 RDMA 协议进行数据传输,使得 I/O 性能不再成为瓶颈。

数据库节点采用和 MySQL 完全兼容的设计。主节点和只读节点之间采用 Active-Active 的 Failover 方式,提供 DB 的高可用服务。同时 ,DB Server 之间仅需同步 Redo log 相关的元数据信息。

  1. SQL Nodes
  2. 管理客户端连接、解析 SQL 请求,、分析执行计划并执行和管理事务隔离级别
  3. 一主多读
  4. 主库和只读松耦合
  5. 主库和只读通信少
  6. 快速 Failover
  7. 引入内核中的一些特性
  • Query result cache
  • Query plan cache
  • Online DDL

SQL Replication

只读节点在本地 buffer pool 中维护数据页的多个版本

  • 减少从存储的远端读取数据页

主库交互

  • MVCC: 同步主库当前活跃事务列表
  • 页失效: 接收主库页失效列表

高速网络下的 RDMA 协议

部署 RoCE RDMA 以减少网络延迟并增加带宽。在单个 AZ 中,Taurus 可以利用高速网络(RDMA)来获得更新和读取的低延迟存储 I/O,这对于低客户端连接方案非常有用。

存储抽象层 (SAL)

存储抽象层 (SAL) 是逻辑层,将数据存储和 SQL 前端、事务、查询执行等进行隔离。由一组容量和处理能力按需扩展的分片节点组成,SAL 将所有 SQL 节点需要的数据页按分片管理和横向扩展。随着数据库规模的增长,可用资源(存储、内存)随着分片创建按比例增长。数据处理本地化,数据密集型操作是在存储节点上按分片服务执行。

Taurus Storage

Taurus 存储基于华为云存储 DFV 持久层。DFV 持久层集群包括多个存储节点。每个存储节点包含多个 SSD 设备和适应 SSD 介质的 append 存储服务进程。 DFV 持久层为 SQL 节点提供存储接口。

Taurus 采用日志化方式处理 SQL 节点数据,即通常表述的“日志即数据”。数据组织采用面向 SSD 重新设计的 Append 模式,显著减少系统写放大,减少存储时延。同时,在 Append 模式下,数据回滚和回档变得非常快速。

Taurus 核心竞争力

成本更低

与传统 RDS for MySQL 相比,只有一份存储。添加只读节点时,只需添加计算节点,无需额外购买存储。只读节点越多,节省的存储成本越多。

扩展性、可靠性更高

  • 横向扩展更快。Taurus 采用共享存储,只需添加计算节点,无论多大数据量,只需 5 分钟左右,并且支持 15 个只读.
  • 纵向扩展更快。容器化部署,规格变更更快。
  • 主从倒换时间更快。 消除了复制延迟,RTO 有保证。
  • 数据库 Crash 恢复更快。

性能更强

软硬结合,基于硬件:Hi1822 卸载,NVMe SSD,RDMA,同时内核进行优化:去掉 double write,Query Cache/Plan Cache 优化,Innodb Lock Management 优化,Audit Plugin 效率优化,性能达到原生 MySQL 的 7 倍。

备份恢复更快

专为 Taurus 引擎定制的分布式存储系统,极大提升数据备份、恢复性能

  • 强大的数据快照处理能力。AppendOnly vs. WriteInPlace,数据天然按多时间点多副本存储,快照秒级生成,支持海量快照。
  • 任意时间点快速回滚。基于底层存储系统的多时间点特性,不需增量日志回放,可直接实现按时间点回滚。
  • 并行高速备份、恢复。备份及恢复逻辑下沉到各存储节点,本地访问数据并直接与第三方存储系统交互,高并发高性能。
  • 快速实例恢复。通过异步数据拷贝 + 按需实时数据加载机制, Taurus 实例可在数分钟内达到完整功能可用。

总结

通过以上介绍不难发现,Taurus 的共享存储架构将数据持久化放入新一代存储中,充分保障数据强一致性和 0 丢失;采用软硬件结合,充分利用 RDMA 网络、NVME SSD 等硬件优势,正是这些关键技术的整合创新,才使得 Taurus 的性能有了质的飞跃。

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

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

相关文章

unity 是厘米还是米_乔丹19岁才1.75米,2年增高近20公分,这个长高方法你能坚持多久...

相信现在有很多的人希望自己在长大之后能去NBA打篮球,但是因为种种原因,最后还是放弃了这个想法, 很多人是因为自己的身体素质达不到要求,比如说天赋上没有达到一个篮球运动员的身高,还有的是因为自己家庭的原因最后放…

win7变成xp风格了怎么改回_微软看了会沉默,把 Windows 10 变成经典 98 风格

众所周知「Windows 10」官方提供的主题都只是换换壁纸,所以喜欢折腾的小伙伴会选择用「UltraUXThemePatcher」来让「Windows 10」支持第三方主题,实现模仿各种风格,如 macOS、Win7、Ubuntu 等。但是由于「Windows 10」版本太多,导…

2021广东高考成绩排名如何查询,2021年广东高考个人排名怎么查询,广东高考成绩排名查询方法...

高考成绩公布后,很多家长和学生咨询我们,广东高考个人成绩排名位次如何查询:广东高考成绩排名,可以通过省招生考试院发布的广东一分一段表来查询,也可以到聚志愿网站直接输入分数查询,一分一段它显示每一个…

区块如何防篡改_深入浅出:一条数据是如何完成上链的

一笔业务数据在区块链处理的流程大致分为三个阶段:分别是上链前处理阶段、链上处理阶段和智能合约处理阶段。一.上链前处理阶段业务数据上链前需要将业务数据处理,并且对信息进行签名。这些过程可以通过对应的工具,比如序列化工具和各种椭圆曲…

锁定计算机在哪里设置方法,怎样锁定电脑?如何设置电脑锁屏【步骤详解】

我们在日常使用电脑的时候,特别是自己的私人电脑时,难免会遇到上个厕所接个水之类的杂事需要离开位置的,也许可能就一两分钟不到的时间,这么点的时间如果关机的话又觉得实在是太麻烦了,但是又不想让其它的人知道我们的…

hough变换检测圆周_Python OpenCV 霍夫变换

霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,它通过一种投票算法检测具有特定形状的物体。Hough变换是图像处理中从图像中识别几何形状的基本方法之一。Hough变换的基本原理在于利用点与线的对偶性,将原始图像空间的给定的曲线通过曲线表达…

easyui中onchange事件_React中类似Vue的“模板语法”

一、数据绑定类似 Vue 的 v-model,this.state { val: 1, companies: ["阿里巴巴", "腾讯", "百度", "京东"], };companyNameUpdate(e) { this.setState({ companyName: e…

html5着陆页模板,多用途着陆页HTML模板

资源下载此资源下载价格为5D币,请先登录资源文件列表apnew/css/animate.css , 74096apnew/css/bootstrap.min.css , 121260apnew/css/font-awesome.min.css , 27466apnew/css/jquery-ui.css , 36437apnew/css/jquery.carousel-3d.default.css , 3639apnew/css/mater…

php十六进制字符串转成字节数组_10 天 5 千 Star!21 岁本科生给程序员开发的十六进制编辑器...

【导语】:ImHex 是一款界面美观的十六进制编辑器,主要面向逆向工程师和程序员。如果你喜欢暗黑系编辑器,那它应该是你的菜。ImHex 最近在 GitHub 上非常火热,上架五天就收获了 2.5k Star,十天 5k Star。开发者介绍ImHe…

扫掠两条引导线_《神都夜行录》周年庆点燃线上线下,解读国风二次元IP的成长之路...

自2016年国产二次元手游在市场实现登顶以来,该品类便一直呈明显的上升趋势,如今也依然是大小厂商乃至创业团队的布局对象。不过具体到二次元手游的玩法和IP建设上,多数产品都选择沿袭早期舰娘like的收集模式,再加上市面热门的重度…

四川三河职业学院计算机寝室,2020四川三河职业学院宿舍条件如何-有空调否?(宿舍图片)...

对于要考的大学宿舍条件好不好,想必大家也是很关心的,下面就带大家探索一番。(注:每年存在大学宿舍翻新的情况,数据与图片可作为参考。。)1、四川三河职业学院宿舍条件学生宿舍近日,四川三河职业学院为2013级即将入住的…

安徽科技学院计算机二级,安徽科技大学2017年3月计算机二级考试报名时间

根据安徽省教育招生考试院要求,安徽科技学院2017年上半年全国计算机二级考试定于2017年3月25日至28日(具体时间见准考证)举行。本次考试报名工作具体安排如下:一、开考科目、级别二、报名及缴费时间2017年2月13日上午9:00至2月28日下午17:30。三、报名方…

c# u盘使用记录_U盘如何快速清除使用记录【详解】

大家在使用U盘的时候,是不是觉得只要将U盘拔下来,就不会在刚才的电脑中留下使用过的痕迹?其实不然,只要你在Windows下对U盘做过任何操作,系统都会一丝一毫的记录下来,虽然这些在系统的资源管理器或记录上不会明显显示…

echart vue 图表大小_cesium+vue,性能优化

平时在vue开发中,我们都习惯把所有数据挂载到vue的data对象上,这样做大大简化了我们的开发流程,响应式数据简直不要太爽但是,针对地图业务的开发,使用了cesium这个开源库的话,其实完全不建议把整个库&#…

pytorch如何计算导数_PyTorch怎么用?来看这里

构建深度学习模型的基本流程就是:搭建计算图,求得损失函数,然后计算损失函数对模型参数的导数,再利用梯度下降法等方法来更新参数。搭建计算图的过程,称为“正向传播”,这个是需要我们自己动手的&#xff0…

crt中 新建的连接存储在哪_数字存储示波器的VPO技术

当使用数字存储示波器测量串行传输信号、数字电路上的地址/数据/控制总线、信号元器件上的噪声、复合视频信号或调制信号时,面临的最大困难在于这些信号随机、变化迅速、杂乱或不具备周期性。因此,为了提高捕获这些信号的几率,减少数字存储示…

计算机在平面设计中的作用,比例设计在平面设计中的作用与意义

随着互联网的不断发展,用户体验在设计师的产品设计中占有的比重越大了,而今天我们就一起来了解一下,比例设计在平面设计中的作用与意义。一、平面设计中的比例是什么?比例尺是指设计元素相对于其他元素的相对大小。一个物体只有在与其他物体…

元组可以直接添加进数据库吗_数据库篇-第一章:数据库基本概念

面试必备基础数据库知识,扫码关注公众号提升01 第一,什么是数据库?维基百科上是这样定义的:所谓“数据库”是以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。一个数据库由多个表空…

win7计算机找不到脚本文件夹,win7系统TXT文件打开提示找不到脚本文件的解决方法...

很多小伙伴都遇到过win7系统TXT文件打开提示找不到脚本文件的困惑吧,一些朋友看过网上零散的win7系统TXT文件打开提示找不到脚本文件的处理方法,并没有完完全全明白win7系统TXT文件打开提示找不到脚本文件是如何解决的,今天小编准备了简单的解…

剪切文件_转录组测序技术和结果解读(十六)——可变剪切

可变剪切的概念可变剪切是指从一个mRNA前体中通过不同剪接方式,选择不同的剪接位点组合,所产生不同的mRNA剪接异构体的过程。可变剪切的分类:外显子缺失 (Exon skipping);可变的5’端剪切 (Alternative 5’ splicing);…