5月23-24日,以“焕启”为主题的腾讯“云+未来”峰会在广州召开,广东省各级政府机构领导、海内外业内学术专家、行业大咖及技术大牛等在现场共议云计算与数字化产业创新发展。
腾讯MySQL内核研发专家张青林在腾讯“云+未来”峰会的「开发者专场」做了主题为“TXSQL:云计算时代数据库核弹头”的技术内容分享,本次分享从五个方面介绍TXSQL:
腾讯云和TXSQL的概念腾讯云作为国内云计算领先公司,在全球建立了500多个数据中心,供数于万计的开发者使用。
CDB产品是腾讯云提供的TXSQL产品,CDB产品提供了一整套的解决方案,包括用户上云,数据迁移、备份、恢复、升级等操作,相比于传统用户来构建MySQL服务,减少了投入的同时也方便使用。
腾讯云的CDB服务渗透到了各行各业,包括银行、证券、物流,还有传统企业等都有腾讯云的客户,用户购买 CDB 后,会分配相应的主机、端口、用户名、密码等信息,用户通过这些信息可以直接联接到后台的数据库。
CDB服务目前分为本地盘和网盘,TXSQL是基础架构部数据库内核团队独立维护的MySQL 分支,对外通过CDB服务提供给客户。可以看到TXSQL是内核,也是底层提供数据服务的位置。
我们为何会创造 TXSQL我们来详细看看构建TXSQL的必要性:
从2016到2017年,存储规模达到了4倍以上,并且随着云计算市场的不断成熟,行业覆盖率也得到了前所未有的发展,整个实例级别已经达到了10万+。
当用户自己构建数据库服务的时候,跑在自己的服务器上,一年可能只会遇到一两个问题,但是如果有数十万个服务器在同时运行,那么每天遇到问题的概率是很大的,所以我们遇到了三个挑战:
第一,客户使用了CDB产品,他会把数据库的请求返回交给上层应用,如果数据库出现问题,可用性基本上得不到保障,所以随着规模的不断增长,我们必须能够快速定位和解决客户遇到的问题。
第二,来自业务的需求,随着行业覆盖率的不断扩展,比如金融或者对数据要求比较高的行业,他们就会对数据安全等功能有多元化的需求,所以需要具备满足客户需求的开发能力。
第三,关于性能,我们知道电商在大促或者游戏有活动的时候,数据库所受到的压力很大,这时候为了提升单机的性能,让用户花最少的钱买最好的服务。
综上所述,面临着三大挑战,一个是稳定性,一个是新的业务需求,还有一个是性能的提升。
基于此,腾讯云需要有一个自己的内核团队来快速定位客户问题,来帮助客户解决问题,并且最大速度的提升单机性能。
我们如何设计 TXSQLB3M是我们的代码设计模型,可以让客户操作的时候更方便,更好的解决问题,也可以帮助客户实现一些新的需求。
用户可能会问, MySQL作为一个基础软件,有几百万代码,门槛比较高,怎么保持修改后的MySQL版本的稳定性呢?
我们不是随意改MySQL,我们改的每一处地方都要经过严格的测试。
首先,我们会进行需求分析,需求分析主要来源于几个方面,一个是数据库在运行过程中出现的问题,比如官方的BUG,另外是用户需求相关的东西,帮助他们更好的使用数据库,再就是做性能调优,用户在使用MySQL过程中,我们也逐渐提升性能和竞争力。
经过需求分析之后会做设计,然后再进行代码编写的工作,编写之后我们会严格把控代码质量,每一个步骤都会经过严格测试,比如代码覆盖率测试和单元测试,我们基本每两到三个月会发布一个数据库内核版本,每一个版本都要跑稳定测试和性能测试,以及崩溃恢复测试,从而保证我们的代码不会引入新的BUG。
在版本发布的时候,首先进行个别实例的发布,然后对新的TXSQL版本的实例进行进行秒级监控,没有问题再进行小集群的发布,最后再进行全网发布,通过这种方式我们保证了MySQL版本的稳定性以及可靠性。
用户在使用 TXSQL 内核版本的时候需要注意哪些问题对于用户来说,所使用CBD内核提供了哪些服务?