PingCAP 开源分布式数据库 TiDB 论文入选 VLDB

8 月 31 日 - 9 月 4 日,第 46 届 VLDB 会议以线上直播的方式举行(原定于日本东京召开),PingCAP 团队的论文《TiDB: A Raft-based HTAP Database 》入选 VLDB 2020 ,成为业界第一篇 Real-time HTAP 分布式数据库工业实现的论文。PingCAP 联合创始人、CTO 黄东旭获邀在会上进行演讲,分享关于论文的深度解读及在线答疑。算法

VLDB(International Conference on Very Large Databases)是数据库领域顶尖的三大学术会议之一,于 1975 年在美国成立,由非盈利性机构 VLDB 基金会赞助和运营,以在全球普及数据库技术研究和交流做为使命。数据库

在本篇论文中,PingCAP 重点介绍了其研发的 TiDB 做为一款定位于在线事务处理和在线实时分析(HTAP)混合负载融合型分布式数据库产品的系统架构和核心特性。TiDB 受 Google 发布的 Spanner / F1 论文 ,以及 2014 年 Stanford 工业级分布式一致性协议算法 Raft 论文的启发。通过 5 年多的产品研发、生产环境上线验证,取得了一系列成果,这次被 VLDB 2020 收录也是对学术界的反哺。架构

HTAP(Hybrid Transactional  / Analytical Processing) 是近些年为数据库界所关注的研究方向。HTAP 数据库须要可以同时兼具处理交易以及分析两种做业的能力,这使得交易数据可以被实时分析,大大缩短决策的周期,同时大幅简化平台架构。异步

可是 HTAP 能力并不容易构建:交易业务须要行存,分析业务仰赖列存,且列存每每难于实时更新。以往的分析平台每每须要将数据从行存的交易库向列存的分析库进行数据迁移,这使得咱们的数据分析每每基于历史数据。现今愈来愈多的用户再也不知足于基于对历史数据进行分析,而是但愿能用更新鲜的数据支持决策。例如生鲜零售业,基于更新鲜的数据进行物流调度能够大大减小货损。分布式

技术上来讲,Real-time HTAP 并不容易实现。首先,数据库须要同时具有行存和列存两种能力;而且列存须要能实时反映行存的变动;最后,两种业务须要能互相之间无干扰运行。性能

TiDB 最新版本中引入了专为 Real-time HTAP 场景设计的以 Raft 为基础的行列混合体系。本论文也是以这个架构为主轴来阐述其独特之处。spa

TiDB 为支持 Real-time HTAP 架构实现了: 架构设计

1. 可实时更新的列存。与传统的列存不一样,TiDB 实现了一套可实时根据主键更新的列存引擎,并使用了与 TiKV 的 LSM 不一样的 DeltaTree 设计,避免了范围读取下 LSM 多路归并负担太重的问题。设计

2. 经过以 Raft Learner 角色加入 Multi-Raft 副本体系,以异步的方式进行从行到列的数据复制,以求尽最小化对在线交易业务的影响。同时,虽然是异步复制,经过共识协议的 Learner Read 算法,TiFlash 仍然能够提供一致性的读取效果。视频

3. 经过与行存一致的代价估算模型,TiDB 能够智能选取行存,列存或者混合的方式响应查询,以期得到最佳性能。

以上是 TiDB HTAP 架构图,与以往不一样的是,新的架构下增长了 TiFlash 列式存储节点。经过 Raft 共识算法进行复制,每一个 Region 能够拥有行存和列存两种副本,而用户查询会根据统计信息和代价估算自动选择副本类型。

TiDB 创新性地利用 Raft 共识协议同时实现了行列混合,负载隔离,以及异步复制下的一致性读取,为 HTAP 架构设计提供了新的思路。PingCAP 联合创始人、CTO 黄东旭表示,咱们相信,HTAP 将会随着业务对实时决策的需求不断增长而愈来愈普及,与此同时,但愿咱们的探索能够启发其余数据库开发者。

TiDB 目前已经有近 1000 家海内外头部公司用户将其用于线上生产环境,涉及互联网、游戏、银行、保险、证券、航空、制造业、电信、新零售、政府等多个行业。包括国内的光大银行、北京银行、微众银行、美团点评、中通快递、知乎、爱奇艺等;海外用户如日本最大的支付公司 Paypay,视频公司 U-Next, 越南的独角兽 VNG,以及支付公司 ZaloPay,印度的 Zomato,BookMyShow,东南亚最大的电商 Shopee,法国视频互联网公司 Dailymotion 等,目前已经成为业内的分布式数据库事实标准。

💡 本论文于 2020 年八月的 PVLDB, Volume 13, Issue 12 刊登。点击【阅读原文】当即下载论文。

相关文章
相关标签/搜索