前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MYSQL 开始学习POLARDB for MYSQL (1)

MYSQL 开始学习POLARDB for MYSQL (1)

作者头像
AustinDatabases
发布2022-04-05 14:34:43
8120
发布2022-04-05 14:34:43
举报
文章被收录于专栏:AustinDatabasesAustinDatabases

不做铺垫,因为公司在进行数据库转型,ORACLE to MYSQL 基于云上的MYSQL 在使用中主要分为两派 1 传统型的RDS ,也就是与我们自己安装的数据库有差别,但差别不大, 2 根据云上的硬件环境,最大最充分的修改数据库的内部结构,让数据库更能使用到我们的硬件环境,去适配他。

这也是我理解的云原生的数据库,云原生的数据库本身的依托就是硬件,没有更强悍的硬件作为宿主,和云底层技术,那么也就没有云原生数据库。

1 POLARDB 的底层 POLARStore ,Polarstore是整体是基于新型的硬件基础上进行的存储平台设计,在针对数据计算和存储中进行了数据计算与存储层的分离。在此基础上计算节点的扩容和存储节点的扩容,以及整体基于此硬件方式的 POSTGRESQL 和 MYSQL 都会快速的进行节点的扩展。

硬件方面使用了超高水平的NVMe 硬件设备, Remote Direct Memory Access RDMA, 这是一个内部通过直接内存访问的模式来进行远程直接内存访问是一种技术,使两台联网的计算机可以在不依赖处理器、缓存或操作系统的情况下交换主存储器中的数据。与基于本地的直接内存访问(DMA)一样,RDMA提高了吞吐量和性能,因为它释放了资源,导致更快的数据传输速率和更低的RDMA支持系统之间的延迟。

基于POLARDB 的产品主要以上的几个模块组成

1 prolarproxy (智能代理)

2 polardb (数据库)

3 polarStore (硬件设备)

基于这套产品,我们整体的数据库的性能有很大的提升,以同样的硬件基础上,我们的数据库在POLARDB MYSQL 与 RDS MYSQL之间的性能区别在 100% 以上。

在文件底层上传统我们的服务器数据底层使用的是EXT4 或者 XFS 的文件系统,而我们的POLAR DB 使用的是 POLARFS 文件系统。

polarFS 通过在一个线程中绑定CPU的方式来避免上下文切换导致的资源损耗,同时PolarFS 优化了内存的分配,用内存池减少了内存对象的在分配和收回,使用超大内存页面来减少分页和虚拟内存和物理内存的切换导致的性能消耗,俗称 TLB UPDATE。

同时POLARFS 针对数据库系统将元数据信息缓存在内存中,减少或避免了I/O方面的元数据损耗。

同时对网络方面的堆栈也进行了考量在I/O 系统中建立了完整的用户I/O 栈,包含了RDMA ,SPDK。

以上是基于在硬件层基础上的工作,同时在数据库的层面,对于shared nothing logical replication 的复制方式进行了改变,将复制改完了shared storage physical replicaiton 的方式。这对数据库的内核的源代码进行了修改。以MYSQL 为例,原来通过 binlog进行复制的方式,改变为通过redo log 在polardb store 的基础上进行纯物理方式的复制。

这样的改变对于数据库的一些操作的性能是有改变的,以DDL操作为例,之前的操作需要主库操作后,从库进行操作,而使用了REDO的方式进行了改变后,整体的UPDATE metadata 的方式中,数据的metadata 将不存在不一致的情况。而数据也将更新一次。

基于redo的数据更新模式,原有的集群中的数据传输模式被彻底的改变,数据的传输中底层的数据对于多少数据库前端都是一套,所以可以快速的进行数据节点的扩充,所有的数据库从节点的数据更新将基于共享数据存储的模式,直击数据库的MVCC 等数据库原有的控制事务的模式。

从节点的数据和主节点的数据不一致的情况,与磁盘本身再无特殊的关联。

同时通过POLARDB的上层的代理层,将数据的访问进行读写的分离,通过读写分离模块与load balance 模块,来整体对数据库的访问进行接管。组件可以判断整体的读操作与主节点之间的是否同步来返回结果。

那么POLOAR DB 的优点有那些

1 存储和计算单元分离

独立的单元扩展

易于控制的消耗

2 shared Storage

高吞吐,低延迟

高可用

快速的

3 基于物理的复制

更少使用 I/O

不在因为DDL 的原因BLOCKING 数据的操作

更加有效的通过REDO 来进行数据方面的复制

4 并且的查询能力,可以获得更少的延迟,支持更复杂的查询

总结,POLARDB 是阿里整体数据库产品的一个体系,他将强悍的硬件产品以及重新设计的软件数据库+ 智能的中间件封装在一起,属于彻彻底底的云原生数据库,基于云的硬件,云的数据库源代码,云方式的高可用方式。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档