数据库行业演进:从传统到云原生的变革与发展

2024-06-02
来源:网络整理

1. 数据库行业演进概述

2.云原生数据库关键技术解读

3. 云原生数据库的典型场景

4. 未来已来:

数据库行业发展概述

我们先简单回顾一下整个数据库的发展和变革,相信大部分DBA都经历过这样一个时代,最开始是传统IT时代,企业广泛使用商业数据库,包括IBM的DB2,SQL等。随着互联网的发展,这类数据库的弊端逐渐显现,过度依赖硬件,价格昂贵等问题层出不穷。

随着互联网时代的到来,涌现出了很多开源数据库,包括、和基于典型LAMP框架进行应用的数据库。后两个时代非常相似,都是基于云计算,对技术和业务都提出了新的挑战和机遇。各大云厂商也相继推出了云数据库,包括云数据库RDS、云主机等云数据库。在业务需求和技术发展的驱动下,云原生数据库也出现在大众的视野中。

回顾云数据库时代提到的数据库产品,都有一个共同的特点,就是通过迁移模式实现数据库云托管。这并不打破传统数据库固有的软件设计、架构特点和部署模式,而是借助云厂商的规模效应,或者用更好的设备和方式去承载开源数据库的软件架构。

值得一提的是,云原生数据库突破了传统数据库软件设计效率低下的问题,通过新软硬件结合、AI赋能、三位一体等软件设计工程方法,解决了传统云数据库的“七宗罪”,包括:性能天花板低、数据回滚慢、维护成本高、故障恢复慢、资源利用率低、复制延迟高、扩展性弱。

如何告别搬迁模式,实现真正的云原生数据库?需要解决以下三个方面的问题:客户使用资源的业务效率、资源被云厂商管理的系统效率、云厂商为客户提供服务的运营效率。业务效率是如何为客户提供高性能、高稳定的产品;资源被云厂商管理时,如何做到物尽其用,提高资源利用率;运营效率是保证数据库在高性能场景下运行的同时,保证业务连续性和数据库稳定性。

云原生数据库关键技术解读

-C是腾讯云自研的新一代云原生关系型数据库,融合了传统数据库、云计算和新硬件技术的优势,采用“存储计算分离架构”,100%协议兼容,为用户提供极致弹性、高性能、高可用、高可靠、安全的数据库服务,主要包含以下特点:

开放兼容,100%兼容开源,无需更改代码即可完成数据库的查询、应用及平滑迁移。

超高性能。单节点百万QPS的超高性能,满足高并发、高性能场景需求。

海量存储。支持PB级海量存储,免去客户频繁分库分表的繁琐操作,并支持数据压缩。

高可用/高可靠,秒级故障恢复,数据多副本备份,数据安全可靠可达99%。

弹性扩展。根据业务需求快速升级或降级配置,秒级完成扩缩容、水平弹性扩展。

超低成本。支持架构,自动扩缩容,只按实际使用量计费,不使用不收费,降低成本60%以上。

上图是大家非常熟悉的主从架构,无论是数据写入磁盘的过程,还是同步的过程,都会产生大量的数据流和日志。

提升资源的可扩展性和灵活性,将计算和存储资源解耦,但牺牲性能,将所有本地 IO 转换为网络 IO,这对于用户来说是不可取的,用性能换取灵活性。在设计云原生架构时,腾讯首先考虑的就是不牺牲性能,在保证高性能的同时,实现真正的灵活性和性能,获得计算与存储分离的云原生数据库架构。

存储中最重要的优化就是重构数据流,如何才能减少通过网络传输的数据量,提高网络 IO 吞吐量,改变原有的 IO 模式,同时又不影响性能呢?对此,腾讯云选择了增量物理日志来实现。-C 丢弃逻辑日志和数据页的原始数据流,通过物理日志在存储层并行重放数据页和逻辑日志。

通过此模型,腾讯云完成了云原生数据库的软件设计,最终可以看到,无论是全库还是大库测试场景,-C相较传统云数据库性能提升200%。

-C 采用腾讯云数据库团队自主研发的内核,100%兼容原生版本,针对重要企业级场景开发了诸多核心特性,性能和稳定性大幅提升,并向开源社区提交了多项特性优化获得认可。在 8.0 版本中实现了并行计算、异步事务提交、减记、热点系统优化等功能。

内核孵化了很多企业级的产品能力,比如SQL审计、SQL限流和防火墙、DDL、共享内存、空闲事务管理,以及支持多版本多时间数据集的查询能力,让用户可以快速恢复数据。

解读库开发程序云能力数据分析_云开发的数据库_小程序云开发数据库能力解读

随着行业的发展,表单数据量、复杂查询数量、OLTP/OLAP混合场景出现频率快速增长,传统仅支持单线程查询处理模式,且由于计算与存储紧耦合,无法有效解决此类问题,从而带来多种弊端。

-C并行查询能力,打破传统单条SQL无法利用多核CPU的瓶颈,实现并行查询框架,将数据划分到不同的线程,多个线程并行计算,并将结果流水线汇总到总线程上,大大提高复杂查询的效率。

前者解决的是复杂查询的问题,而DDL解决的是海量数据更改数据库表结构和类型的问题。大表的DDL是典型的IO场景,执行过程中对业务影响很大。为此-C支持针对特定用户场景的DDL操作,达到秒级DDL的效果。-C在系统表中添加相关元数据表,用于存储元数据版本变更,在数据行中标识元数据版本信息,可以跟踪解析任意行的元数据版本,从而对该行进行正确的操作。目前支持add和两个操作,整个DDL的代价从O(n)降到了O(1)。举个简单的例子,对于一个5kw的表(12GB),分别进行秒级增加列和更改列的操作,正常情况下增加列需要2分钟,更改列需要21分钟左右;而使用秒级增加列和秒级更改列,瞬间即可完成。

云原生数据库-C全面升级网络架构,采用全链路RDMA网络,进一步优化存储层与计算层之间、存储层多副本之间关键路径的系统性能,降低请求时延高达80%,让I/O性能不再成为瓶颈。

众所周知,TCP协议的延迟基本集中在协议栈中,用RDMA替换之后,裸协议的延迟可以降低到30us左右,整体性能可以提升200%以上。

云原生数据库-C 率先尝试编译器优化,采用英特尔 DPC++/C++ 编译器,结合链接时优化(LTO)和配置文件引导优化(PGO)方法对应用程序进行模块间优化(IPO),可以对代码进行深入分析和进一步优化,从而获得更优的性能。配置文件引导优化为编译器提供了程序中最常执行区域的信息。这些技术的结合使腾讯云原生数据库-C 的性能显著提升,最高提升幅度达 85%。

利用AI技术,腾讯云原生数据库-C提供自调优、自诊断、自优化等特性,实现自动索引优化、异常检测、根因分析、SQL流控等,可以保证数据库在运维阶段拥有非常稳定的产品性能。

云原生数据库的典型场景

在腾讯内部,微信、腾讯视频、腾讯会议、财付通、微信支付等明星业务均已开始升级云原生架构;在集团外部,金融行业、政企行业、泛互联网行业、泛企业领域、新零售、智慧出行等也纷纷开始使用云原生数据库。

新零售领域的代表企业瑞幸咖啡,没有经历云数据库阶段,直接完成了从自建到云原生数据库的跨越,帮助用户解决了原有老架构无法快速扩展,以及大促期间频繁出现的使用卡顿、无法提交订单、无法支付等问题。

对于瑞幸咖啡而言,整个迁移过程平滑快速,100%兼容、一步自建,云原生架构下业务代码无需改动。迁移后,活动期间扩缩容速度由天级降低到秒级,确保满足峰值数据库性能需求,并在活动结束后快速释放闲置资源,降低IT运营成本。

在移动互联网领域,核心系统开源分布式数据库已完成替换,替换后-C在典型场景下时延降低至20ms以内,基于-C超高性能,相同业务场景成本降低60%。-C可以用最少的资源保证业务5倍的性能提升,同时保证不需要进行繁琐的分库分表。

未来就在这里:

到目前为止,云数据库已经经历了三个时代,1.0时代,开源托管数据库产品RDS以租户方式提供给用户,2.0时代,云原生数据库时代,存储与计算分离提供了更极致的性能,3.0时代,数据库应用阶段,自动弹性、更智能的运维、极致的成本优势提供了更广阔的想象空间。数据库的发展从对性能、稳定性、安全性的要求逐渐演变到对极致成本的要求,大家都认为是下一个云原生的风口,数据库是在高性能云数据库之上的终极成本优化方案。

早在2020年底,腾讯云就推出了云原生数据库-C,可实现秒级极限弹性扩缩容,高度智能,屏蔽底层繁琐运维,降低使用成本80%以上。

数据库可根据用户负载需求无缝扩展,可在不到1秒的时间内从数百笔交易扩展到数百万笔交易,有望实现更准确的增长预测。机器学习算法是实现数据库智能的关键算法,可以学习和分析大量数据,构建应用领域模型,使数据库更加智能。

随着技术的不断发展,数据库的可用性得到进一步提升,未来将支持更多的容量扩展和自动弹性扩展方式,本质上让用户能够更贴近应用,而不必关注后端的服务。

数据库按照精准增量的方式调整容量变化,相比按照峰值负载预先设定容量,机制更加完善,真正做到了“不使用,不计费”,帮助用户节省成本。

此外,云原生数据库辐射出庞大的开发者生态,腾讯云原生数据库-C实现与微信生态互通,结合微信小程序云开发,为开发者打造全新的数据库使用形态,已为近50万小程序开发者提供一站式开发云服务。

同时,-C还结合无服务器功能SCF、轻量级服务器、物联网平台等,为企业和开发者提供一键部署、多端运营的全套解决方案。

近期精选文章

分享