云数据库POLARDB优势解读系列文章之②——高性价比

现在做任何事情都要看投入产出比,对应到数据库上其实就是性价比。POLARDB作为一款阿里自研数据库,经常被问的问题是:性能怎么样?能不能支撑我的业务?价格贵不贵?很显然,在早期调研阶段,对稳定性、可靠性很难有量化的指标时,性能的好快就成了一个非常关键的决策因子。

POLARDB在一开始设计时就把性能作为一项关键的需求指标列入产品需求说明书,从架构设计到新硬件选型,再到代码实现,从驱动到分布式块存储,再到分布式文件系统和数据库引擎,打通整个技术栈做协同优化,最终才能保证性能上有数量级的提升。

高性能背后的技术

在2018杭州云栖大会上分享的这张架构图展示了POLARDB的内部细节。自下而上来看,POLARDB由__共享分布式存储PolarStore__,__分布式文件系统PolarFS__,__多节点的数据库集群PolarDB__和__提供统一入口的代理PolarProxy__这四部分组成。

PolarFS

PolarFS设计中采用了如下技术以充分发挥I/O性能:

  • PolarFS采用了绑定CPU的单线程有限状态机的方式处理I/O,避免了多线程I/O pipeline方式的上下文切换开销。
  • PolarFS优化了内存的分配,采用MemoryPool减少内存对象构造和析构的开销,采用巨页来降低分页和TLB更新的开销。
  • PolarFS通过中心加局部自治的结构,所有元数据均缓存在系统各部件的内存中,基本完全避免了额外的元数据I/O。
  • PolarFS采用了全用户空间I/O栈,包括RDMA和SPDK,避免了内核网络栈和存储栈的开销。

在相同硬件环境下的对比测试,PolarFS中数据块3副本写入性能接近于单副本本地SSD的延迟性能。从而在保障数据可靠性的同时,极大地提升POLARDB的单实例TPS性能。

PolarDB

在数据库PolarDB中开创性地引入了物理日志(Redo Log)代替了传统的逻辑日志,不仅极大地提升了复制的效率和准确性,还节省了50%的 I/O 操作,对于有频繁写入或更新的数据库,性能可提升50%以上。

PolarProxy

PolarProxy存在的意义是可以把底层的多个计算节点的资源整合到一起,提供一个统一的入口,让应用程序访问,极大地降低了应用程序使用数据库的成本,也方便了从老系统到POLARDB的迁移和切换。本质上,PolarProxy是一个容量自适应的分布式无状态数据库代理集群,动态的横向扩展能力,可以将POLARDB快速增减读节点的优势发挥到极致,提升整个数据库集群的吞吐,访问它的ECS越多,并发越高,优势越明显。

关于成本

抛开成本谈性能,都是耍流氓。

首先,POLARDB存储与计算分离的架构,可以让CPU、内存和磁盘摆脱互相制约的困扰,让计算和存储作为单独的资源池进行管理和分配,大幅降低资源碎片,提升整体的资源利用率。计算和存储的机型不同,我们还可以更有针对性地做定制和优化,降低单位资源的成本。

通用意义上,规模效应带来的边际成本递减这件事,会一直发生。在阿里巴巴超大规模的基础设施的基础上,我们可以持续不断地从全球供应链、低能耗数据中心、服务器研发等多个维度来降低我们的成本。

性价比

不管技术上有多先进,成本上有多低,最终还是需要用户认可。

所以,我们从用户角度来看,最关心的其实还是性价比,即同样的费用,是否可以获取更好的性能。

我们简单算笔账,来看一下POLARDB和RDS MySQL的性价比。

公平起见,我们使用同样的数据库配置,测试数据集和测试方法,然后分别计算出二者的价格和性能。

其中,

  • 数据库配置采用生产环境常见的『8核 32G ,500G存储』的配置
  • 数据集和测试方法采用通用的sysbench OLTP测试用例(--oltp-tables-count=10 --oltp-table-size=500000)
  • 性能指标我们取QPS(Query per Second 每秒钟处理请求数)和TPS( Transaction per Second 每秒钟处理事务数)

此外,不管是RDS MySQL还是POLARDB,都具备了通过增加只读节点来达到横向扩展读(Scale out)的能力,不同的是,POLARDB随着节点数的增加,并不需要额外的存储费用,因此,我们需要多对比几种架构,从1个读节点到3个读节点,具体如下:

集群架构POLARDB 月价(计算规格+存储)RDS MYSQL 月价POLARDB比RDS贵POLARDB 性能(QPS)RDS MySQL性能(QPS)POLARDB性能提升千元性能指标(RDS vs. POLARDB)
1主1备2000*2 +1575=55754100+400=4500+24%53879.4618625.49+190%4139 vs. 9664
1主2备2000*3+1575=7575(4100+400)+(5.13+0.001*400)*24*30=8481-10%66626.6326357.94+150%3107 vs. 8795
1主3备2000*4+1575=9575(4100+400)+(5.13+0.001400)24302=12463-23%80268.2743087.33+86%3457 vs. 8383

表中的一些基础价格(以2018.11.8 当天价格为例):

  • POLARDB存储月价:1575元/月 = 500GB * 3.5元/GB/月
  • POLARDB 1个节点的月价是2000元
  • MySQL高可用版实例(双节点)的月价是4100元
  • MySQL高可用版实例存储月价:400元/月 = 500GB * 0.8元/GB/月
  • MySQL只读实例小时价:5.13元/小时
  • MySQL只读实例存储小时价:0.001元/GB/小时

用下图展示会更清晰一些,其中灰色的『备库』不对外提供服务。由此可见,POLARDB的性价比非常高,所有节点都提供服务,因此资源利用率也较RDS高。

彩蛋——免费使用的复杂SQL查询加速

在实际应用中,客户的业务是复杂的,很多时候业务访问会掺杂着大量的统计分析类的复杂SQL(Ad-hoc query),这时候MySQL的单线程模型处理起来就会捉襟见肘。

POLARDB为了应对这种场景,内置了并行查询引擎,针对大表复杂查询(比如TCP-H基准测试)性能可提升8倍,特别适用于执行时长超过1分钟的慢SQL(比如报表查询)。同时还支持了集合运算、WITH、窗口函数OVER等高级语法。该功能目前已经公测,免费使用,详细参考『SQL加速』。

以下图表是我们做了一个对比测试,在使用SQL加速的情况下,查询效率是不使用SQL加速直接查询的8倍以上,具体的测试用例包括,

  • Point query on non-indexed column(无索引列的单行查询)
  • Aggregate query(聚合查询)
  • TPC-H

目前SQL加速功能,提供了额外的连接地址,提供非事务的复杂查询服务。底层的计算节点和存储复用POLARDB现有的资源,一份数据多种访问方式,省去了数据迁移的烦恼,也不需要额外的成本投入。

技术实现上,包括以下几点,

  • 插件式计算引擎,负责分布式算子计算
  • 单表计算下推到数据库引擎
  • 大SQL并行计算

 


原文链接
本文为云栖社区原创内容,未经允许不得转载。

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

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

相关文章

Linux环境 安装 Redis-6.2.6 配置运行_01

文章目录安装依赖环境1.下载2. 解压3. 编译4. 配置抽离5. 修改配置文件6. 启动redis7. 查看redis进程8. 启动redis客户端安装依赖环境 yum install -y gcc-c autoconf automaker升级GCC 这里说明一下,在编译之前:在编译之前需要升级gcc的版本&#xff0…

38年后的今天,用数据回顾什么是女排精神?

戳蓝字“CSDN云计算”关注我们哦!作者 | 朱小五责编 | 阿秃每当我们足篮打水一场空时,总会想起女排。38年前,1981年11月16日,中国队击败当时号称“东洋魔女“的日本女排,首次夺得世界冠军,这也是中国在三大…

阿里如何将“高峰前扩容、高峰后缩容”的梦想照进现实?

一、2017年我们做了什么? 记得早在2017年的时候,王坚博士就曾召大家就关于“IDC As a Computer”是否能做到,进行过激烈的讨论。而要做到此,必须要实现存储计算分离,分离后由调度对计算和存储资源进行独立自由调度。而…

cmd下pip安装mysql_Windows下使用pip安装mysql-python

安装的过程很煎熬,留个爪,希望对其他人有帮助。先声明我安装前的电脑配置:Win10;Python2和Python3共存(备注一个好用的方法,感谢知乎大神:https://www.zhihu.com/question/21653286);MySQL是在W…

阿里云异构计算团队亮相英伟达2018 GTC大会

1、首届云原生计算国际会议上,弹性计算研究员伯瑜介绍了基于虚拟化、容器化编排技术的云计算操作系统PouchContainer 首届云原生计算国际会议(KubeCon CloudNativeCon,China,2018)在上海举办,弹性计算研究…

SpringBoot整合Redis 主从复制_01

主从复制 master slave 核心解决问题:数据冗余备份,不能解决故障的自动转移 主从复制讲解: 1.主节点负责写入操作,从节点负责同步主节点的冗余数据,不能写入 2.当主节点挂掉之后,从节点还是从节点&#xf…

发布国内首个无服务器容器服务,运维效率从未如此高效

近年来,随着越来越多的企业基于微服务架构构建自身核心业务平台后,微服务已获得越来越多技术人员的肯定,同时,微服务也承载着企业数字化转型的重任。但微服务架构的落地给企业的运维团队带来了不少的挑战,原有的运维方…

OPPO 正式发布 ColorOS 7,“轻”装上阵带来多项亮眼新功能……

今日OPPO举办了 ColorOS 7 发布会,正式发布了主打“轻快无边界”的ColorOS 7,以“轻”为核心构建了无边界设计 2.0,在UI、交互、动画、声效等方面进行了优化,围绕“快”阐述了ColorOS 7 在畅快使用、高效体验上所做的创新功能。 此…

深度解析国内首个云原生数据库POLARDB的“王者荣耀”

随着移动互联网、电子商务的高速发展,被使用最多的企业级开源数据系统MySQL面临着巨大挑战——为迎接“双11"的高并发要提前做好分库分表;用户不断激增要将读写分离才能应对每天上亿次的访问,但读写分离后会导致数据同步延时严重、分布式事务复杂且…

ubuntu mysql5.6_ubuntu安装mysql5.6

安装mysql5.6在ubuntu上安装mysql5.6的版本1.添加mysql5.6的源sudo apt-get install software-properties-commonsudo add-apt-repository deb http://archive.ubuntu.com/ubuntu trusty universe2.安装mysql5.6sudo apt-getupdatesudo apt install mysql-server-5.6sudo apt i…

SpringBoot 整合 Redis 哨兵机制_01

文章目录一、哨兵简述1. 哨兵能解决和未能解决的问题2. 哨兵的作用3. 哨兵的主要配置4. 哨兵综述二、搭建哨兵2.1. 思路分析2.2. 节点分布总览2.3. 哨兵配置2.4. 启动主从复制2.5. 启动哨兵:三、需求测试3.1. 评估预测3.2. 分别登录3个节点3.3. 破坏性模拟测试一、哨…

流量隔离方案 Dpath 护航双十一新零售

需求 在今年的双11准备期间,业务同学提出要针对新零售进行特殊的保障,希望新零售过来的流量,单独进入到一批机器,和其他普通流量隔离开来,这对新零售系统稳定性提出更高的要求。 需求总结下来就是: 针对…

潘石屹接连带货 Python,要来抢我们的饭碗?

地产大亨潘石屹近日开始一项全新学习,刷爆程序员的朋友圈,程序员纷纷议论起来:地产大亨也要来抢饭碗啦?11月14日,他说:今天开始我学习一门新的语言Python,我在寻找。这也是今天给自己人生的礼物…

SpringBoot 整合Redis 单机、哨兵、集群

<!--springboot整合redis--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!-- redis 依赖commons-pool --><dependency><group…

mysql连接不上怎么重置密码错误_MySQL数据库连接不上、密码修改问题

1.问题描述版本&#xff1a;【CentOS8】【MySQL5.7】问题&#xff1a;远程使用navicat连接不上数据库&#xff0c;后来试了在linux中都登不进去。根据提示应该是密码不对&#xff0c;此文主要介绍密码修改和一些注意事项。2.解决方法1)因为现在登不进去&#xff0c;所以没法修改…

服务化改造的云上利器 | 阿里云 EDAS 重大升级发布

11月22日&#xff0c;广东云栖大会企业级互联网架构专场上&#xff0c;阿里云发布了全新版本的企业级分布式应用服务EDAS。 新版本增强了对主流微服务框架的原生支持&#xff0c;实现SpringCloud & Dubbo用户代码零侵入就能迁移至EDAS&#xff0c;降低开发者的接入门槛&am…

Nacos发布0.5.0版本,轻松玩转动态 DNS 服务

阿里巴巴微服务开源项目Nacos于近期发布v0.5.0版本&#xff0c;该版本主要包括了DNS-basedService Discovery&#xff0c;对Java 11的支持&#xff0c;持续优化Nacos产品用户体验&#xff0c;更深度的与Spring Cloud体系的网关集成等方面做了演进。 一、发布 DNS-F 为了进一步…

刷爆了!华为:这类程序员我给200万!你怎么看?

从2017年开始&#xff0c;人工智能便波澜不断&#xff0c;无论是从BAT高调布局AI&#xff0c;还是从年薪50万招聘AI应届生&#xff0c;炽手可热形容AI工程师一点都不过分。百度推出“少帅计划”,针对30岁以下的深度学习科学家&#xff0c;开出100万以上年薪&#xff01;阿里巴巴…

mysql c 中文字符串_MySQL字符集中文乱码终极解决方案和mysql查询中文问题解决方法...

开源数据库MySQL从来都是中小企业构建web应用的首选&#xff0c;特别是和PHP配合简直就是一 对黄金搭档&#xff0c;深受web开发人员的喜爱。但自从4.1以来MySQL加入了多字符集的支持&#xff0c;很多MySQL使用者发现中文居然不能使用了&#xff0c;显示变成了一堆 乱码&#x…

SpringBoot2.x整合Redis 分布式集群_01

文章目录一、节点分布总览二、软件配置初始化三、集群配置修改3.1. redis-7002.conf3.2. redis-7003.conf3.3. redis-8001.conf3.4. redis-8002.conf3.5. redis-8003.conf3.6. redis启动四、 节点握手4.1. 节点握手4.2. 操作日志如下&#xff1a;五、槽位分配和配置主从5.1. 槽…