查看原文
其他

刘奇:NewSQL时代看TiDB的前世今生

刘奇 高可用架构 2020-11-06

导读:12 月 22~23 日,高可用架构和 msup 联合主办的 GIAC 全球互联网架构大会将于上海举行。GIAC 全球互联网架构大会是面向架构师、技术负责人及高端技术从业人员的技术架构大会。GIAC 于 2016 年 12 月成功举办了第一届,今年的 GIAC 已经有腾讯、阿里巴巴、百度、平安、饿了么、携程、七牛、蚂蚁金服、罗辑思维、摩拜、唯品会,LinkedIn, Pivotal, Mesosphere, AdMaster, Hulu 等公司专家出席。


在大会前夕,高可用架构采访了本届大会讲师刘奇,就目前业界非常热的 TiDB 及新时代的数据库发展进行了探讨。


刘奇,PingCAP 联合创始人兼 CEO ,爱自由的 Hacker,先后创建了 TiDB、Codis 等知名开源项目。曾任豌豆荚,京东资深系统架构师。同时也是知名的 Go 语言专家和 Redis 专家。现从事开源的分布式 NewSQL 数据库 TiDB(受Google F1启发)的开发。擅长高并发、大规模、分布式数据库系统架构设计。


高可用架构:奇叔好,很荣幸能有机会来采访您。首先,TiDB目前非常热,能简单谈谈您当时做 TiDB 的初衷?以及期望解决哪些场景的问题?


刘奇:你好!我也很高兴能接受这次采访,其实说到这个项目的初衷,是当初在豌豆荚的时候,当时我和东旭(PingCAP 联合创始人)一起负责后端的分布式存储部分,在那段时间,我们完成了一个分布式的缓存系统,也就是开源出来的 Codis,在 Codis 解决了缓存的弹性伸缩问题后,我们尝试开始去解决 MySQL 的扩展性问题。


当时原来的系统大量依赖了 MySQL 分库分表的技术,运维和使用起来非常的痛苦,我们就觉得这个方案太不优雅了,于是就希望能够彻底的解决这个问题,当时看到了 Google Spanner 和 Google F1 的论文后,觉得这个才是正确的技术方向,而且社区里面也没有一个开源实现,我们决定填补这个空白,这个是整个项目的初衷。


到现在差不多 3 年过去了,TiDB 也在两个月前发布了 1.0,我们很惊喜的看到我们的用户已经把 TiDB 的使用场景不仅仅从简单的替换 MySQL 分库分表,而是把应用场景扩展到了强一致的数据仓库,开始模糊传统数据库和数据仓库的边界,渐渐把 TiDB 变成了一个 HTAP (混合事务/分析处理)数据库,在处理高并发实时事务写入的同时,解决了很多的实时分析的场景,比如 今日头条,Mobike, 去哪儿,同程旅游等大型互联网公司内部都有很多类似的应用。


高可用架构:TiDB1.0 发布后,能否透漏下你们后续研发的重点和优化方向有哪些?


刘奇:其实 1.0 只是一个里程碑,之前其实已经有很多早期用户在生产环境使用 TiDB,1.0 是我们觉得是时候有信心让我们的用户大规模在生产环境使用的一个标志。研发的重点和方向是长期和明确,几个重要的方向:


  1. 持续增强 TiDB 的 SQL 能力,持续提升实时分析和查询能力;

  2. 存储引擎如何和新的硬件和存储介质结合,发挥新时代硬件最大的能力;

  3. 和云的整合,和 K8S 整合,做到真正意义上的 Cloud-Native 和 Self-driving 数据库


高可用架构:业界目前分布式数据的产品很多,能谈谈 TiDB 在这块技术优势?以及 TiDB 目前的一些成功案例。


刘奇:首先,TiDB 本身的 Share-nothing 的架构决定了它的可用性和扩展性是非常好的,真正能做到弹性伸缩;


第二,对用户的访问接口是兼容 MySQL 的协议和语法,使得用户的使用和迁移成本很低,MySQL 拥有一个良好的开发者生态,大多数 MySQL 的工具在 TiDB 上都可以无缝的使用;


第三,TiDB 的底层的分布式存储并不依赖现有的 HDFS 或者其他的分布式文件系统,我们针对分布式数据库的场景自己设计了底层的分布式存储系统 TiKV,从性能,可用性和可维护性上来说都是一个更好的选项;


第四,TiDB 支持强一致的对用户透明的分布式事务,这个特性极大的减小了开发者在开发应用时的难度,降低了心智负担;


另外,TiSpark 这个项目能让用户在一份存储上(TiDB Cluster),同时使用 SparkSQL 进行复杂的 OLAP 实时分析,极大减低了用户 ETL 的工作量。


其实目前已经有很多的知名的互联网及金融企业在大范围的使用 TiDB,比如互联网里面摩拜单车的使用的规模是比较大的,还有饿了么,去哪儿网,同程旅游,今日头条都有大规模的应用。在金融行业里面,例如 360 金融,美利金融,团贷网等互联网金融,在实时风控方面 TiDB 都有不错的应用,目前还有一些更大型的传统金融客户目前正在稳步推进,请大家期待好消息。


高可用架构:纵观数据库的发展历程,从传统sql到nosql到newsql,您此前也是著名nosql项目Codis的项目发起人,现在是newsql的引领者,您怎么看大数据时代数据库的发展趋势?


刘奇:确实,我还是认为 NoSQL 是数据库发展的一个中间的过渡和互补,历史是螺旋上升的,SQL 作为历史最悠久,受众最广泛的数据操作接口,不管是在过去还是未来,都会拥有重要的位置,最近几年数据库发展的几个大的趋势:


  1. 分布式和 Scale-out 是必选项;

  2. SQL 在回归;

  3. ACID 事务支持;

  4. Cloud-Native;

  5. 分析和事务处理系统在融合, HTAP 会成为新一代数据库的标志


当然了,NoSQL 并不是 NO SQL 的意思,而是 Not Only SQL,最典型的例子,比如缓存,用 Redis 就很好嘛。在合适的场景使用合适的方案,没有什么是银弹。


高可用架构:听说你们公司目前有 60 多人,也看到 TiDB 的 contributor 有数百人的参与,这么多人,能谈谈您让项目高效运转的一些经验?


刘奇:哈哈,纠正一下,现在公司已经 87 人了,我们的思路其实也比较简单:


  1. 严格按照标准的顶级 Open source 项目的运营流程走,我们有严格的分支管理和代码审核,另外重度依赖 Github 来完成协作,这些经验都在更大型的开源项目中验证过,比如 K8S、Docker 等我相信这套开源的方法论是经得起推敲的;

  2. 非常重视测试和自动化,从 Day 1 开始,我们就在构建我们的分布式自动化测试框架,以及收集 MySQL 的集成测试用例(这也是我们选择 MySQL 协议兼容的一个很重要的原因),到现在为止这上千万的测试用例在每次提交代码和构建时候都会自动的运行,这给工程师在加新功能或者重构的时候增加了信心,这也是大型项目能往前推进的核心保证,怎么强调都不为过。 


高可用架构:看来我们的信息有点落后了,你们发展好快。据了解很多 contributor 直接最后成了你们的员工,在 contributor 和员工之间,你们最后的把控和取舍是怎样的?


刘奇:确实,很多优秀的社区贡献者后来加入了 PingCAP,特别是高校的优秀大学生,社区本身是我们很好的面试官,如果这个贡献者能长期持续的贡献,说明他已经能和我们的团队很好的协作,很多时候这个过程是很自然的,对于优秀的人才我们肯定是求贤若渴,不管是社区的还是正常的内推或者社会招聘。


对于 Contributor 我们的思路是尽可能扶持新的贡献者,通过各种教程和简单的任务,让感兴趣的开发者能够入门,能够了解 TiDB 的内部原理,不管最后成为了员工还是其他什么结果,我相信对他个人和对 TiDB 这个项目都是好事,也非常感谢这些 contributor 给社区持续做贡献,让更多的 TiDB 用户受益。


高可用架构:最后,能稍微透露下您此次大会的分享内容以及您对 GIAC 大会有哪些期望?


我们公司也是 GIAC 的老朋友了,今年我分享的内容是 TiDB 在多租户技术上的一些想法和尝试,多租户也是云数据库的核心技术之一,干货很多,挑战也很大。对 GIAC 的期望就是,越办越好啦。


本期 GIAC 大会上,数据库部分精彩的议题如下:



注:出品人及演讲议题以最新官网 http://2017.thegiac.com 为准。

参加 GIAC,盘点年底最新技术,高可用架构会员专享 2 天票直减 1700 元,速戳“阅读原文”或识别二维码申请。

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存