赞
踩
不做铺垫,因为公司在进行数据库转型,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 是阿里整体数据库产品的一个体系,他将强悍的硬件产品以及重新设计的软件数据库+ 智能的中间件封装在一起,属于彻彻底底的云原生数据库,基于云的硬件,云的数据库源代码,云方式的高可用方式。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。