随着移动互联网、电子商务的高速发展,被使用最多的企业级开源数据系统MySQL面临着巨大挑战——为迎接“双11"的高并发要提前做好分库分表;用户不断激增要将读写分离才能应对每天上亿次的访问,但读写分离后会导致数据同步延时严重、分布式事务复杂且效率低下、数据库可用性下降、MySQL的3T容量瓶颈等一系列问题都困扰着CTO和架构师们。
“要解决这些问题,阿里巴巴2008年就开始研发自主可控的数据系统,2014年基于MySQL的国内首个云原生数据库POLARDB开始孵化,到今天已累计超过PB的数据迁移至 POLARDB”阿里云研究员吕漫漪这样告诉记者。
荣耀一:超大容量 弹性扩展
虽然POLARDB是基于MySQL研发的关系型数据库,但存储容量完全不受到限制,存储容量最高可达100TB,单库最多可扩展到 16 个节点,性能提升是MySQL的6倍,并且完全兼容MySQL。
"由于MySQL 和POLARDB 百分之百兼容,有两种办法可以实现快速迁移,:一是直接做个备份,就可以从MySQL迁移到POLARDB,这种方式非常简单,还可以通过我们提供的DTS在线工具进行迁移。“吕漫漪表示:”对于一个完全基于云环境的数据库,利用云的弹性扩展是个基本项,用Serverless方式自动扩容,存储空间无需手动配置,根据数据量自动伸缩,用户只需为实际使用容量付费。”
当应对完一次“大促“释放数据资源、节点资源非常简单,POLARDB三分钟就可生效。“不同于MySQL的‘一主多从’POLARDB则采用‘一写多读共享同一份数据’的方式,无需额外建立多个从库。在几分钟内就可以增加一个只读节点并启动服务。采用物理日志(RedoLog)代替逻辑日志(Binlog)极大程度的减少的主备延迟和磁盘IO,使得主备延迟控制在毫秒级,并可根据实际情况修改为主备强同步。”
荣耀二:运维简单 安全可靠
操作简单一直是降低差错、提高可用性的不二法则。吕漫漪表示:“POLARDB的大容量、高性能简化了构架师对数据库的操作,不用去做分库分表、不用做冷热分离,同时有对查询的加速接口,可以直接通过调用智能接入层的一个接口就可完成复杂的查询。”
同时,数据越来越成为企业的重要资产,甚至是企业的生命线。“我们在数据库安全方面对POLARDB也做了很多改进。POLARDB共享分布式存储的设计彻底解决了MySQL Master-Slave异步复制所带来的备库数据非强一致的缺陷,使得整个数据库集群在应对任何单点故障时,可以保证数据 0 丢失。采用Active-Active的高可用集群架构,可读写的主节点和只读节点之间进行Failover切换,与传统的Active-Standby相比,用同样成本带来了更好的系统访问性能。“
POLARDB也加强了数据安全方面的措施,包括采用白名单、VPC网络、SSL加密、数据多副本存储等全方位的手段,对数据库数据访问、存储、管理等各个环节提供安全保障。“在实际场景中我们发现,误删除等低级错误时有发生造成的损失巨大,为此我们未来在新版本中还会提供‘回收站’的功能,能很快地将删除的数据库表进行恢复,此外,还利用POLARDB共享分布式存储的特点,可以快速将数据库恢复到某一个指定时间点,通过快照的功能通过快照和物理日志将数据库恢复到一个指定的时间点来提高数据库的高可用性。“
荣耀三:平滑演进 面向未来
对于POLARDB的演进方向,吕漫漪表示,“首先就是在靠可用性上下功夫。企业及客户对高可用性和数据库的安全要求特别高,所以我们会在高可用上加大投入。此外在性能上的提高,把更多的功能下推到存储层来做。在当今大数据的时代,企业级用户在功能上也有了新的要求,要求数据库既要是事务性数据库又要是分析性数据库,我们今后把这两个需求结合在一起,今后将推出并行查询、大幅提高大表查询、复杂查询的性能,这些都是我们的前进方向。
当前数据种类繁多,除了大家熟知的关系型数据库,图数据库、文件数据库、流数据库等非关系数据库也在崛起。吕漫漪认为,数据库的发展现在是百花齐放,由于应用场景的不同,用户可以选择不同的数据库,但我们可以看到MySQL数据库也发生了很多改变,它从一个纯关系型的数据库也开始支持文件存储,5.7版开始支持文件存储,关系型数据库的演变和MySQL的演变也开始支持更多的存储模式,我们可以给客户提供更多的选择。”
阿里云数据库事业部总经理鸣嵩认为:“十年时间,阿里云数据库团队从技术创造新商业到推动中国数据库技术变革。”从AliSQL到RDS,再到首个自研云原生数据库POLARDB,如今,阿里巴巴数据库技术得到了极大的提升,领跑数据时代。前不久,Gartner公布了2018全球数据库魔力象限,阿里云以国内云厂商第一成为首个入选的中国企业,分析师更是认为POLARDB云原生数据库在使用场景的应用值得期待。相信作为国产数据库的领跑者,阿里云将一直在为使命而努力奋斗,让我们拭目以待。
本文作者:桐碧2018
本文为云栖社区原创内容,未经允许不得转载。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。