本文内容根据 PingCAP 高级副总裁范若晗在 BDTC 2021 的主题演讲:“开源走向世界”整理而成,从协作方式和技术演进两个角度,分享了 “开源”和“全球化” 之间相互关联,密不可分的关系,分为上下两篇,上篇介绍了开源如何构建全球化的舞台,本篇主题为:从数据库技术演进看开源力量
我们认为,数据技术演进的驱动力总结起来,主要包括三个方面:理论基础推动软件创新、基础设施保障软件能力的实现、业务需求真正打磨了技术的不断工程化、产品化,是产品真正的 “用武之地”。
数据库演进历史——基础理论驱动
按照时间和功能维度,我们将数据生态做了划分,大致包括 SQL 生态,大数据生态,NoSQL 生态,NewSQL 生态,以及 SQL 的云化生态。每个生态的演进,离不开基础理论的发展。
1970 年 IBM 的关系型数据库理论 Relational Model 包括 System R 原型产品的问世,为 Oracle、DB2、MicroSoft SQL Server 这些商业数据库的诞生奠定了基础。而后 MySQL、PostgreSQL 以开源这一形态获得快速发展和全球最广泛的应用。
2003 年 - 2006 年,谷歌三驾马车 GFS,MapReduce,BigTable 论文的发表,奠定了业界大规模分布式存储系统的理论基础。现如今非常流行的 Hadoop、Spark、MongoDB、Hbase 等也都是建立在这些理论基础上的。大家可以发现,这些数据产品都是用开源模式发展壮大的。因为闭源的模式迭代速度慢,单位成本高,已经无法应对海量用户需求了。
2012 年 - 2014 年,还是 Google 发表的 Spanner 和 F1,以及斯坦福大学的 Raft 论文,推动了 NewSQL 数据库的发展。PingCAP 的 TiDB,也是对这些理论基础的产品化实现,并在此基础上不断创新。
数据库演进历史——业务创新驱动
再来看看怎么理解刚刚说的 “用武之地”,总体而言,业务需求体现在以下三个方面:
一是 “事务特性” ,也就是通常说的 ACID 原子性、一致性、隔离性、持久性。通俗来说,流程数字化、业务线上化都属于严肃业务,比如金融、电信等业务,以及企业级的 ERP、CRM,都要求可靠的事务特性。
二是 “数据规模” ,主要体现在互联网带来的海量数据爆发增长,不管是用户行为全面互联网化、或移动设备带来的数据采集极大丰富,还是内容本身的创造造成的数据海量暴涨,从文本到图片、动画、短视频、长视频、游戏再到最近很热的元宇宙,都是数据规模增长因素,在疫情的极致推动下,各个行业的数字化转型又催生了新一轮的数据增长。
三是 “处理延迟” ,在移动互联网及数字化的今天,对用户体验的追求水涨船高,ToC 业务希望更快地服务响应,从而争夺用户的碎片时间,争夺商业时机,ToB 业务对数据处理也需要更迅速的业务响应,更实时的数据分析和更敏捷的运营决策。
这三个因素在不同时期有不同的发展,还有不同的组合,不断催生并落地了数据技术的发展。不同的数据库生态,正是在业务驱动力的不同组合推进的结果。
信息化时代数字基础弱,主要解决关键业务的准确性和效率问题,更多是小数据量的严肃业务,对数据有高度的事务特性要求,且数据结构稳定、规则清晰,数据量有限,这类需求关系型 SQL 单机数据库生态就能满足,要求的是效率和稳定。
2000 年左右进入大数据时代,经过信息化的长期发展,数据有了大量积累,新的数据也以前所未有的体量和速度增加,单机关系型数据库逐渐有了吃力和老态的迹象。为了对海量数据进行存储和分析,尤其是离线积累的数据,各类高效、可伸缩、可部署在低廉硬件上的大数据处理平台纷纷崭露头角。
而后的互联网时代初期,内容和用户线上行为都极大丰富,但当时主要是海量非结构化的数据存储(视频/音频/图文/社交关系等)、但数据规模庞大,要求并发性流量、同时争夺流量,快速响应用户访问、提供低延迟用户体验的需求驱动了 NoSQL 生态的发展。因为早期互联网业务不以盈利为目的,要处理的数据更多是用户在互联网上的浏览记录,社交关系等,所以对于事务特性上就没有那么高的要求。
进入移动互联网时代,随着数据量的迅猛增长,业务在保证良好用户体验的同时还要完成交易和变现,业务敏捷除了要求系统能快速响应业务变化和数据增长,还要求高可靠地支持海量交易、支付等严肃事务。可以看到,这时期业务驱动力的三要素都进入了视野。部分企业仍在通过 SQL 生态云化的过渡方式来满足,但我们也在实践中看到,当用户的数据量尤其数据更新超过一定范畴,原生分布式的 NewSQL 才是先进架构的选择。再加上数据技术都进入到全面云服务化的阶段,架构的差异就更加显露出来。
同时,实时洞察要求数据决策从 T+1 向 T+0 升级,甚至是秒级毫秒级的分析响应,实时汇聚多源数据、动态更新并灵活计算都是不断出现的需求,渐渐的事务性计算和分析性计算之间的分界越来越模糊,数据库和大数据的技术创新会不断融合。
数据库演进历史——基础设施驱动
最后,硬件是软件发挥作用的基石,数据技术的发展离不开基础设施的发展。
从大型机到 X86 服务器再到云计算,基础设施部署实现了从 “年” 到 “月”到“日”到“秒”的颠覆性变革,资源从专有、封闭到按需启动、弹性扩展。云原生时代再次把资源规模扩大,资源颗粒度缩小,API 化、微服务化进一步把业务上线、更新的速度推到秒级。
未来,资源分离的设计将在云上释放更大的威力。上面数据库发展的时间轴只画到了 NewSQL,实际上数据技术还在不断进化。相信在这个进程中,开源能够发挥的价值将越来越大。现在所有云的产品背后核心都来自于开源,创新源动力也是来自于开源。以下是在 2021 PingCAP DevCon 大会上,东旭提出的一个大胆假设:云原生的时代,所有能分离的都会分离,规模效应掌控一切。这个分离包括存储与计算的分离、更极致的是不同目的的存储与存储的分离,业务计算与分布式计算及事务性计算可以进一步分离。不断把规模效应和资源效率优化推向极致,而对于用户而言,只需要关注业务本身就好,其他的都交给云端的数据库来完成。
TiDB 产品迭代的启示
在这三个驱动力作用之下,我们可以总结下 TiDB 过去 6 年中产品的迭代来做个印证。
TiDB 产品最大的优势是技术开放性,架构开放就意味着能够产生更多的连接,更多连接意味着更快的迭代速度、更多的可能性。
TiDB 的初心是希望提供一个原生分布式且良好支持 OLTP 事务的数据库,让我们的 DBA 不再因为海量数据的分库分表加班熬夜。TiDB 1.0 和 2.0 解决的就是这个问题。后来随着数字化带来的实时化诉求,一栈式 HTAP 成为我们的努力方向,伴随今年 TiFlash MPP 的发布,我们已实现全面的 HTAP 能力。
作为云原生的分布式数据库,我们在今年推出了 TiDB Cloud,以及免费开放给开发者试用的 Developer Tier,用户可以在 Amazon Web Services 上免费运行 TiDB 集群一年。TiDB Cloud 负责基础设施管理、集群部署、备份管理等所有后台数据库管理,让开发者可以专注于打造优秀的应用,实现秒级切换。所有这些都基于开源带给我们的迭代速度和创新源动力。
最后用 RedHat CEO Paul Cormier 最近在电视采访中说过的一句话作为总结:Open source software is the heart of the technology behind cloud computing。
是不是开源,是不是要去做开源,是不是要把开源作为公司持续创新的外在推动,我认为是每一家基础软件公司都可以去深度思考的一个问题。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。