本文是由腾讯云数据库程昌明老师在《关系型数据库产品新特性》关于MySQL产品能力介绍及新特性的分享实录。
大家好,我是负责云数据库MySQL的产品经理程昌明,现在由我给大家介绍腾讯云MySQL云数据库的产品新特性,以下特性涵盖2021年及2022年上半年规划中的能力以及未来发展方向。在讲具体的功能之前,我们先来看一下TDSQL for MySQL版 这样一款产品在定位上有些什么变化。
云数据库MySQL是腾讯云PaaS产品线核心产品,多年前开始就确定了它企业级数据库的定位,在企业级内核、企业级扩展性、企业级高可用、高可靠、数据安全、智能运维上进行发力,将它打造为一个具备企业级能力的数据库,而不仅仅是开源的MySQL。
2021年在之前的基础上进行了扩展,希望以MySQL为核心将它扩展,完善它的生态及扩展其边界。从2021年开始我们的内核每个季度会发布一个新版本,会用它的完成时间作为版本号标志,这样整个发布周期是有迹可循的,也能够紧紧跟住友商和社区,不断从社区吸纳有益内容,通过不断的更新反馈社区,从而建立良好的关系。
在定位明确、内核节奏确认的情况下再看具体的功能。2021年上半年我们做的工作核心:
1、目前已经发布的极速变配;2、高性能参数模板待发布;3、独享集群测试中,待发布状态;4、Rocksdb待发布,HE规划的能力;5、数据库代理是已发布并持续做增强;6、跨可用区迁移为待发布状态。接下来将针对这些能力进行拆解说明。
极速变配能力的发布,用户进行变更配置的时候,按照传统的实现路径需要去通过迁移的方式建立好一个新的规格的数据库实例,通过切换方式完成配置变更。当数据量太大的情况下,这个过程是非常漫长的,也成为困扰很多用户的点。
提供提速变配的能力,当发现实例所在主机剩余资源足够满足变配要求的情况下,直接进行参数配置和规格调整,直接对实例生效,这个过程中有可能重启。但是重启并不意味着用户受到重启的影响,因为我们会做切换的方式,通过对整个8月份极速变配能力的调动情况来看,至少给用户节约了1500小时的变配时间。当然离目标还有一定距离,但这个比例我们正在不断分析和优化,尽量提升极速变配能力触发的概率,去优化和调整。
高性能参数模板,首先是发货事项合并问题,我们把发货的过程合并为一个步骤,可以在创建实例的时候直接选择是否配置大小写敏感,不再有8.0无法配置情况。
二是部分参数支持公式调整,我们提供了max、min,基本的四则运算法则,以及将CPU和内存作为参数代入公式的能力。
三是提供高性能和高稳定性两种模板,以前只提供默认模板,需要用户自己根据业务特性去进行相应的调整,现在将默认模板改为高性能模板和高稳定性模板。对比原有默认模板有6%性能提升,这也是内核侧不断完善性能的时候所能体现出来的价值,而原来默认模板并不涉及相关参数以及调整,所以并没有很明确的性能提升,也没有利用上内核侧的能力。
四是开放更多的参数,因为不同能力在不同小版本里面参数配置不同,这次整体改造可以开放出更多相关参数给用户,能够让用户第一时间使用这样的能力,做到小版本参数管理,区分数据库版本。
接下来介绍RocksDB和数据库代理,RocksDB是腾讯TXSQL团队在RocksDB的基础上改出来的一个新特性的引擎,我们命名为TXRocks,也是借助了开源力量,在整个使用过程和RocksDB没有什么太大的区别。
RocksDB的SLM Tree带来什么样的好处?超高企业能力压缩比,原来需要6T的存储空间的数据存放在TXRocks里面仅仅需要3T不到,在测试过程中我们使用sysbench和TBCC进行了数据压缩的测试,原始11G的数据当使用完成以后最终不到6G。不同的数据结构类型,包括不同的数据存储都会影响压缩率,基本上是能保证在30%-50%之间。如果重复率低可达到50%,极大的压缩了存储成本。
数据库代理,这是已经发布的能力。数据库代理解决的是读写压力问题,当一个请求打到数据库上,通过代理分发,不涉及事务性的读取时将由RO来承担读的能力,而主库只需负责带事务的读写,将整个数据库的压力进行分担。
独享集群是一个新的架构模式,它是专门为企业级用户定制的优化解决方案,原来在云上都是购买数据库实例,而独享集群是购买主机资源。我们用的主机资源方式是用CVM,自由度更高,能做到更高安全性,能够让我们有信心把主机的权限开放给用户。
最后需要说明的是跨可用区迁移,用户可以迁移主库所在的可用区至同地域下的其他可用区。同时为了实现同地域下所有可用区域能互相迁移,VPC子网就不再受限于实例所在可用区。
下面介绍MySQL规划的重点和功能点
比如付费带宽异地RO组或者异地灾备需要保持同步的时效性和可靠性,就必须增大带宽,在高峰时期或者业务活动期间有可能需要20M、50M、100M这样的带宽,我们也不可能免费给用户提供,因为我们并不知道用户具体需求是多少,而且这个成本过于高昂。目前我们提供的异地带宽相对有限,而提供付费带宽的能力能让用户自主对带宽进行升级,按需使用,既满足客户对可用性、可靠性的要求。
异地灾备及克隆,之前的一个案例,一位用户希望在上海下载北京的备份,中间网络有很大的问题,导致下载一直不顺畅,客户希望我们提供异地备份、克隆的能力,能够备份多地存储,方便执行企业相关安全的要求。无名需要满足他们对备份安全的诉求,同时这样的备份又能够用于克隆闪回,能够满足很多CDB特有的功能实现。
Proxy增强,目前规格和节点数比较确定,比如会话保持,8.0的支持,都在规划的Proxy增强当中,我们不断完善数据库代理以提供越来越好的数据库代理能力给用户。目前还在公测阶段,我们会不断提升,一直到认为它能够给客户带来稳定的能力,是必不可少的才会开启商业化的模式。
最后是参数调优,不同用户在不同规格和业务情况下,它们的参数是否都能适应好自己数据库所运行的最大状态。我们通过深度学习算法对于业务进行优先分析,来给用户推荐当前数据库应该将哪些参数调整至什么样的值,能够获得多少的性能提升,给用户这样的建议,这就是智能的调优。
覆盖全场景的高效回档能力,当前回档还需要总库做恢复把部分库表导回来,面对巨大的数据库仅想回复其中某几张表的时候,会在时间上消耗巨大。我们在实现过程中内核侧已经实现极速的扩表回档,指定扩表的极速回档,不需要再做总库的恢复,需要哪张表恢复哪张表,极大的节省了回档的时间。回收站防止意外的Drop你的表,能够让你把被Drop掉的表能够在再从回收站里回收回来,提升你的容错性。目前的版本已经支持,而我们正在做把它产品化的过程。
ON CVM的形态,刚才介绍了很多,在灵活性、成本上都会有非常大的提升,但是它的极限性能并不如现在的MySQL这套架构的极限性能,现在我们提供了更多的选择,更灵活的配置、更低成本架构,比如可以支持单节点,在性能不需要这么强的情况下写日志历史库或者合并类的库,需要很大容量,并不需要很高的性能,都可以通过这个方式解决。
安全加固,凭证管理是为用户提供凭证的创建、检索、更新、删除等全生命周期的管理服务。特别是提供特定字段的加密存储能力、敏感信息的加密存储,不仅仅是透明加密那么简单,这需要你连存储的数据也必须是加密的。而目前我们已有安全团队已经能够实现这样的能力,目前需要做的是集成,集成好这样的安全能力来给用户提供一键式服务。
随着《数据安全法》的发布,很多客户对安全有越来越高的要求,也必须满足《数据安全法》的要求。9月1日,《数据安全法》正式实施,所以安全开始变得异常重要,这是为什么我们愿意在安全上投入这么多的原因。而完全靠我们自己实现这样的安全能力,一是时间周期长,二是借助现有的能力能很快的弥补我们的不足,专业的事情应该交给专业的人士做。安全,腾讯一直非常专业,所以和安全团队合作能够达到非常好的效果。
我们希望是达成这样的产品全景能力图,从前端的输入就能够通过控制台、客户端,通过凭证管理、审计能够进行一切监控,来给用户提供非常安全的访问环境。再到整体架构,支持物理机、云服务器架构,支持异地的灾备,通过付费网络带宽完全搭建起来,符合企业级用户要求。再通过参数的调优去辅助、协助用户更好的使用数据库,更优的使用数据库,让业务运行的更快,而不是将数据库不行的时候升配。以上就是MySQL版本次要分享的内容,谢谢大家。