InfoQ|解读 TiDB:行走在 GKE 上的 NewSQL 开源数据库

【InfoQ|解读 TiDB:行走在 GKE 上的 NewSQL 开源数据库】
数字化时代下 , 企业的发展与数据库的建设息息相关 。 如果搭建云下数据库 , 不仅要通过大量的运维投入保证数据库稳定运行 , 随着企业规模与数据量的发展 , 还要应对数据库扩容、弹性、运维、备份等各种各样的问题 , 云下数据库对企业提出的要求日益增长 。 此时有两种应对之法 , 一是凭借扩充技术团队解决问题 , 但这无疑将会带来不菲的运维与人员成本 , 二则是把一切交给云服务 。
数据库上云的优势主要体现在四个方面:1. 成本降低 , 把数据库的部署、监控、调优这些事情都交给云来负责 , 让企业把重要资源投入到自身的业务上;2. 云数据库按需使用 , 资源可以弹性伸缩 , 比如可以快速扩容数据库扛住市场促销带来的流量洪峰 , 活动过后缩容到正常规模以节省成本;3. 云数据库自身提供高可用性和 SLA 保障;4. 多数据副本保障数据安全可靠 , 实时在线备份应对灾难数据恢复 。
作为近年来讨论热度居高不下的技术话题 , 数据库上云受到很多企业和开发者的关注和研究 , 其中 , 一部分实践者也取得了诸多成果 , 如 Google Cloud 自研的 Cloud Spanner 、PingCAP 打造的国内第一个 NewSQL 开源项目 TiDB , 在数据库市场上都取得了很好的口碑 。
想了解数据库上云的更多技术点吗?想知道它们的实践场景都有哪些吗?想了解云数据库的架构设计吗?10 月 22 日的线上直播「出海纪 | Google Cloud 今日谈」系列活动第二期:对话 TiDB 核心数据库上云秘籍中 , Google Cloud 资深架构师吴斌与 PingCAP TiDB 云产品负责人刘寅通过对话的方式分享了 TiBD 开源及架构演进以及 Google Cloud 对于数据库上云的技术赋能 , 助力你探寻以上问题的答案 。
InfoQ|解读 TiDB:行走在 GKE 上的 NewSQL 开源数据库
本文插图
以下内容经由 InfoQ 编辑整理自【对话 TiDB 核心数据库上云秘籍】直播速记 。
1Google Cloud 与 TiDB:一篇论文引发的不解之缘 作为国内首个开源的分布式 NewSQL 数据库 , TiDB 理论基础来自于 2013 年 Google Spanner/F1 论文 , 特性上和 Spanner 非常类似 , 有非常强大的水平扩展能力 , 在数据的增长和业务流量爆发期间 , 可以通过伸缩节点来让数据库满足企业自身的业务需求 。 同时 , TiDB 混合了交易型数据库和数据仓库两种负载的特性 , 提供 OLTP/OLAP 一站式解决方案 , 具备强一致分布式事务、高可用、故障自治愈、MySQL 协议兼容的特性 。
“我们能做出 TiDB 这样一个开源的实现 , 让更多的开发者可以更低门槛地去使用、去研究这样的技术 , 来解决他们的问题 , 某种程度上来说受到了 Google Spanner 很多方面的启发 。 ”
谈及 TiDB 借鉴 Spanner 的核心技术点时 , 刘寅进一步解释到 , Google 在软件和硬件方面都有非常厉害的创新 , 比如说像 Spanner 用的 TrueTime 技术 , 依赖于原子钟和卫星来实现单调递增的全局时间戳 , 但对于硬件技术开源软件很难复制 。 TiDB 的架构和 Spanner 有非常相似的地方 , 比如底层的分布式存储架构 , Spanner 论文给出一个非常漂亮的方案 , 将数据按照 key-value 进行组织并拆分成固定大小的 tablet , 随着数据增长 tablet 可以进行分裂 , 通过上帝视角的调度器 PD 实现数据在集群节点之间自动平衡分布 。 同时每一个 tablet 借助分布式共识算法复制多个副本并保持一致性 , 数据副本分布在不同的地区以实现全球级别的高可用性 。 尽管 TiDB 和 Spanner 选择的分布式算法有所不同 , 但是达到的效果是一致的 。
除了借鉴 Spanner 论文的技术原理之外 ,TiDB 在发展过程中也进行了拓展和创新 。 首先 TiDB 实现了完整的与 MySQL 兼容的协议 , 这对更多的开发者更加友好 , 也降低了用户的迁移成本;其次 , TiDB 实现了实时更新的列存 , 并且利用 Raft 实现行存和列存之间的一致性数据同步 , 而优化器可以根据用户的查询自动选择合适的存储引擎 , 这样在一个数据库之上可以同时提供高并发和低延迟的交易型负载和执行实时分析的复杂查询 。


推荐阅读