为云而生,云原生数据库TDSQL-C技术突破与演进
The following article is from 腾讯架构师 Author TDSQL-C
以“数实融合,绽放新机”为主题,聚焦产业趋势与技术前沿,打造产业互联网顶级盛会的2021腾讯数字生态大会日前在武汉举办,腾讯云数据库技术负责人程彬进行了《云原生时代的数据库技术实践》的主题演讲,分别从云原生时代数据库技术何去何从,新时代下如何构建TDSQL-C数据库产品和TDSQL-C在云上实践经验等三个方面进行分享。
(以下是通过程彬现场演讲全文整理)
时来云转
云时代的数据库应云而生、依云而建
当云计算这个词还热度未减时,云原生的时代却已悄然而至,也因此用户使用云的方式发生了极大的变化。从之前用户会把自己的IT架构或业务系统从自建的IDC搬迁到云上,到如今上云的用户不再直接搬迁,而是根据云上的基础设施IaaS或者PaaS的特点,进行自己IT架构的升级或者业务系统的升级。用户的用云方式改变,也对云数据库带来极大的挑战。举个例子,在云上面用户购买虚拟机和部署自己的数据库,而虚拟机提供的可靠的存储副本数本身就是三份,而同时在数据库上层再做架构的冗余,整个数据库存储副本数就会放大很多倍。
这问题要怎么解决呢?我想先简单回顾下数据库技术演进的历程,数据库从技术的角度来讲,它是利用计算、存储、网络的能力对用户的数据进行存储和加工处理,数据库技术的演进也离不开基础设施和数据特征的变化。所以发展到今天可以划分为4个阶段。
第一阶段(1970s)传统IT时代,以大型机和专用网络为主的商业数据库,用于国防、科研或者大型商业公司,这个阶段,无论计算机场景和用户数都不多,数据量规模也不是很大,但数据价值却非常高,催生出了以Oracle或者IBM为代表的商业级数据库。这个时期的商业级数据库的特点就是贵,但却实现了很大突破:1)实现二维表为代表的数据模型,能够把客观数据放在数据库系统里保存下来;2)出现SQL语言数据库,使得数据库产品得以广泛的应用;3)实现了事务处理能力,让数据库能真正的应用到一些关键的业务场景里,实现数据库存储。
第二阶段(2000s)互联网时代,随着计算机和Intel等技术进一步的发展,数据库全面进入了互联网时代,并催生出了以谷歌为代表的互联网企业。这时,数据库遇到一个新的挑战就是成本,互联网时代用户数据急剧增长带来的成本的挑战,主要体现在软件和硬件设备贵,解决软件成本通过开源共建方式去降低整个软件的成本,针对硬件通过集群和分布式的技术来提高系统可用性和性能,为此以开源和分布式为基础的互联网技术体系就应运而生,同样的,互联网的数据库也是基于这个体系来去构建的。
第三阶段(2010s)云计算时代,随着互联网普及和行业融入,互联网+和移动应用拉起了云计算时代的帷幕。彼时数据库管理规模的增大非常明显,因此引发两大挑战:1)如何让云上数以万计风格各异技术公司都能很好的应用云数据库;2)大规模管理下如何提高管理效率,数据库即服务就应运而生,这个时候,大家都想方设法的通过服务的方式规避在使用上的瓶颈,进而提升整体资源的利用率。
第四阶段(现在)云原生时代,随着数字经济的普及,这时又遇到了全新的问题,这里从腾讯云数据库看出,客户数整体持续增长,客户结构繁盛变化,业务场景也是变化万千,更多的创业企业上云,成本变得更加敏感,同时独角兽或上市公司上云等对数据库的弹性要求越来越高,此外传统线下企业(包括银行、政府等)上云对稳定性要求更高。
基于以上原因,我们重审了现有基于分布式跟开源架构下的数据库,发现它确有的一些先天不足,比如计算、存储资源耦合度极强,导致整个资源利用率偏低,这样也会导致成本偏高;弹性能力受限于资源的紧耦合也做不到极致等;此外,我们还发现云上面的IaaS、PaaS的承受度会变得越来越高。基于种种问题,我们改变思路基于云上面的基础设施,尝试着去研发出一款全新的云原生数据库TDSQL-C,应云而生,依云而建,兼具商用的性能和稳定性和开源灵活和低成本,做到云原生的极致弹性。
云上生长
腾讯云原生数据库TDSQL-C助力企业降本增效
首先从架构上,把单体架构升级为更可控的弹性架构。设计理念是把计算层和存储层进行解耦,做分层处理,分层过后通过池化让计算、存储的能力变得无限大,做到极致弹性;同时基于云上IaaS跟PaaS来进行重新设计,复用之前的非常成熟的数据库内核、计算等技术以及EB级规模存储的平台,提高数据库的稳定性。基于这样的平台,云原生数据库TDSQL-C打造六大核心能力。
1.可计算存储能力,践行log is database设计理念,把计算节点做到无状态。
2.超大计算/存储力,单个实例可以做到千核级别的计算能力,达到PB级的存储能力。
3.极致弹性能力,秒级扩展。
4.自动伸缩能力。
5.serverless形态和多级存储,降低数据库成本。
6.一体化服务,简化用户开发门槛,让架构变得简单,在一个数据库里尽量能处理多种场景。
1.千核计算输出:单实例极致192核15RO读集群,支持千核输出,从容应对高吞吐读业务;
2.PB存储:扩展表空间管理,可管理海量云存储数据,最大支持单集群PB+存储。
1.在存储引擎上,做行列混存,通过列存来加速查询能力。
2.在优化器上面,把以前面向行的优化器进行优化,让它自适应能够进行分析场景算法的调整。
3.在执行引擎上,把单一的串行的执行引擎调成分布式的执行引擎,加大数据的查询能力。
4.在内存计算上,把多个节点技术联合起来做协同,通过NVM拓展内存,TPC—H查询性能相比之前提高50倍的性能。
云上实践
﹀
﹀
﹀
云原生数据库TDSQL-C PostgreSQL版内核解密
载誉而归 | 腾讯云原生数据库 TDSQL-C荣获“云原生卓越技术提供商”奖项
HTAP大潮下,TDSQL的探索与实践