前不久,PingCAP 刚刚度过六岁生日。对于数据库这样一个古老的行业,六年只是刚刚起步。TiDB 5.0 的公布就像一个庆贺成长的生日礼物,为 TiDB 带来了一个具备里程碑意义的版本。通过引入 MPP(Massively Parallel Processing,大规模并行处理)架构,年老的 TiDB 曾经成为一款具备残缺 HTAP 能力的分布式数据库。
PingCAP 联结创始人兼 CTO 黄东旭在 TiDB 5.0 发布会上进行了《What’s Next? 新一代数据库的构想》的精彩演讲,讲述了 TiDB 作为一款企业级数据库的成长史,并分享 PingCAP 对于企业级数据库的思考与内外功修炼。
一个企业级数据库的辛酸成长史
TiDB 从诞生的第一天起,就被设定了一个很高的指标——成为 一款面向外围零碎的企业级数据库。也因为这个很高的指标,其倒退历程充斥着辛酸的故事。
5 年前,当带着 TiDB 第一个版本见客户时,还没有人用过 TiDB,而客户的问题就是“有谁在用你的产品?”很显然这段对话的后果就是被回绝。毕竟作为一款企业级数据库,替换数据库的动作就像动心脏手术一样,客户通常都十分审慎。
TiDB 的第一次用户尝试就成为“救命”的产品
TiDB 的第一个用户是一家游戏公司,过后的数据库不能满足其广告投放零碎的实时查问,于是就抱着死马当活马医的心态开始试用,后果 TiDB 成为救活这个公司的产品。说来也巧,这个广告零碎恰好是一个 HTAP 场景,仿佛也预示了 TiDB 的救命能力与实时性数据处理密不可分。
一个小指标:开辟金融行业客户
之后的几年中,随着在 Mobike、今日头条等互联网守业企业中利用,TiDB 逐渐成为互联网行业在分布式数据库畛域的事实标准,也有了一些知名度。但相熟的对话再次发生,客户在与 PingCAP 交换中问“你们当初有没有金融行业的案例?”,过后 TiDB 还正处于 1.0 – 2.0 阶段,并没有金融行业案例,客户认为这还不算真正的企业级数据库。
到了 3.0、4.0 版本时,TiDB 逐步有了一些外围的金融行业客户,具备了金融客户应用案例。但客户又问“你们有大行外围零碎的利用案例吗?”“没有”“那不好意思,告辞!”
这段历史很辛酸,每个人都有第一次,一个新产品也总得有第一个客户。但数据库这种货色所有人都说必须得他人用过,本人才敢用。这就是做企业级数据库的现状,因为这个货色切实太过于重要,没有人违心当小白鼠。
从“救命”到“省心释怀”企业级数据库的成熟之路
TiDB 跨过最危险的开源鸿沟
TiDB 与很多数据库相比,很特地的一点在于它是一个开源软件。在业界,开源软件有一个逾越鸿沟的实践,它描述了一个新技术的倒退阶段:一开始大家的预期都很高,逐步有一些晚期的用户,市场也在一直发出声音。继续一段时间后会经验一个高峰期,顶峰过后就会进入一个很长时间没有增长的阶段。很多开源我的项目死于这个死亡之谷,那是一段十分焦虑十分煎熬的期间。
上图中,蓝线代表 Kubernetes —— 目前全世界最风行的开源软件,从图中能显著看到它也经验过这样一个曲线。另外一条绿线代表了 TiDB,作为一个历经六年的开源我的项目,也没有逃出这个客观规律。在两头长达两年的工夫里简直没有增长,这段时间对于一个开源数据库是最难熬的日子。从 4.0 版本公布至今,TiDB 终于跨过了这个最危险的开源鸿沟。依据开源的历史法则,TiDB 与 PingCAP 将会迎来一段高速的增长,当初曾经是一个“死不了”的产品。在根底软件行业,一个死不了的开源软件曾经很不容易了。
这个法则的背地阐明了什么?一个真正好用的根底软件,一款真正好用的企业级数据库,并不是几个蠢才工程师写进去的,而是被人“用”进去的。两头那段长达两年的,其实并不是没有增长,它只是在不停地进化,一直地在各种各样的场景中打磨产品。
回到“什么是企业级数据库”这个问题。有很多用户是通过数据库的用户案例来判断是否企业级,有的认为贵的软件免费就是企业级,也有很多人甚至感觉开源就不是企业级,每个人心中都有着不同的答案。
做“省心,释怀,不放心”的企业级数据库
PingCAP 认为,一个真正的企业级数据库厂商应该把本人放在用户的角度去思考,无论是一个企业去购买数据库应答数字化挑战,还是一个工程师去面对数百台的数据库集群保护,他们须要的就是“省心、释怀、不放心“。
第一,省心。省心其实次要是易用性问题,很多时候,人们认为易用性是一个无关用户体验的事件。这里有一个特地简略的规范,如果它带来的问题要小于它解决的问题,这就是易用。如果你发现用一个新货色的工夫和精力比它解决问题所破费的工夫还多,那就是不省心。
第二,释怀。数据不会错、不会丢、性能无抖动是对于一个数据库最根底的要求。其实在应用数据库的过程里,并不在于它有多少性能、多高性能,而是万一呈现问题,有没有人提供背地的企业级服务。一个 DBA 工作中可能有 50-60% 的工夫在部署、装置、备份、保护数据库,如果这个数据库他不会运维,不晓得怎么调优,就无奈让人释怀。PingCAP 背地有一支业余的服务团队,比起其余没有生态的数据库软件更能让人释怀,保护不愁人。
第三,不放心。用户到底在放心什么?是业务的增长吗?是数据质变大吗?是放心这家数据库公司开张吗?其实在数据库畛域里,从用户的视角来看,真正的敌人是零碎的复杂性,这个零碎越简单,在应答业务高速增长、疾速变动时,应答的动作就会越缓慢。这个复杂性是各种各样的技术架构、各种各样的软件组合在一起,产生了很多的数据对接,以及保护各种各样的技术栈。
对于不放心,在 TiDB 里有一个实在的故事:
https://v.qq.com/x/page/k3242wd985n.html
在传统的数据处理与大数据计划中,引入了各种各样的复杂性,用户的在线零碎和离线大数据系统是齐全割裂的两个零碎。应用 TiDB 后,大多数场景用一套零碎就能够撑持。对于用户来说,一个简洁优雅的技术架构就是不必放心的计划。
里程碑!TiDB 5.0 外围能力向企业级演进
TiDB 5.0 的内功:TiDB,栈稳了!
如果要给 TiDB 5.0 定义一个关键字的话,那就是“练内功”。当初整个行业对于 TiDB 的认知和需要曾经进入一个深水区,过来大家认为这是一个创新型产品,会在一些创新型的业务上用。但从 4.0 开始至今,越来越多的金融机构或大型企业,开始把 TiDB 用在一些十分要害、十分外围的交易、领取场景里。很多人外表上看 5.0 仿佛并没有公布特地多新性能,其实在 5.0 这个版本能看到的显性功能只是冰山一角,冰山上面更多看不见的是 TiDB 产研团队、用户和贡献者对稳定性以及性能的继续优化,这些“内功”也是一个真正的企业级数据库应该谋求的能力。
从 4.0 版本到 5.0 版,TiDB 做了大量优化,包含缩小性能抖动、晋升性能、晋升安全性等,上图中能看到这条黄色曲线最终变成了红色曲线,缩小抖动将近 100 项。对于一个企业级数据库来说,内功其实是十分重要的一个壁垒。
真 HTAP 来了!TiDB 5.0 补全 HTAP 能力拼图
回顾整个 TiDB 历史,你能够看到 HTAP 是如何一步步变成明天这个状态的。TiDB 刚诞生的时候,出发点十分奢侈,就是想做一个 MySQL 分库分表的替代品,比 MySQL 分库分表用起来更不便,解决 OLTP 规模化的问题。
4.0 版本曾经实现初步的 HTAP 能力,第一次引入了 HTAP 的重要插件 —— 列式存储 TiFlash 引擎。列存引擎在底层为 TiDB 打下一个根底,与 OLAP 数据库相比不再有天生的缺点。
TiDB 5.0 最新版在 TiFlash 的根底上引入了 MPP 架构,在性能上补全了 HTAP 最初一块拼图。提供与存储匹配的分布式计算引擎,进一步晋升海量数据下的并行计算与剖析能力。这对于 TiDB 来说是一个里程碑,标记着 TiDB 成为一个领有残缺能力的 HTAP 分布式数据库。但里程碑并不代表起点,对于一个企业级数据库来说,TiDB 还有很长的路要走。前路漫漫,心愿大家多多容纳,多多呵护 TiDB 持续成长壮大。
抛掉过来,从新登程——数据库将来趋势
如果从数据库的倒退历史角度来看,上世纪六七十年代,IBM、Oracle 创造了关系型数据库。2010 年前后,互联网遍及了 Shared Nothing 架构,分布式数据库缓缓走向支流。当初根本一个成规模的互联网公司或者数据量大一点的公司,大多都在用 Shared Nothing 的数据库撑持。但从架构来说,咱们兴许须要新的思路来解决将来的问题。2021 年咱们又站在了一个新十年工夫窗口的开始,直觉通知咱们,接下来行将进入一个数据库技术的全新时代。这个时代须要摈弃掉过来所有对于数据库的假如,去面向这个时代的基础设施从新设计。
首先,规模效应会从新把握所有。早年间有一个预言说将来这个世界上只须要五台计算机,当初来看应该不是五台计算机,而是五朵云。云的基础设施兴许会变成新的基础设施,将来的年轻一代工程师或者都不晓得什么是 CPU、内存、磁盘,他们看到的基础设施就是云厂商提供的 API 或服务接口。从 Snowflake 的实际来看,新一代的根底软件只有基于云底层能力深度重构能力真正获取弹性的能力。Snowflake 是第一个,然而必定不会是最初一个。
将来可期,PingCAP 曾经筹备好从新登程!