DTCC 年度最佳创新产品丨真正的 HTAP 数据库是怎样炼成的?

Wesley13
• 阅读 706

12 月 21 日,在第十一届中国数据库技术大会(DTCC)2020 数据风云奖评选活动中,PingCAP-TiDB 荣获 2020 年度最佳创新产品奖。同时,PingCAP 数据库内核研发工程师韦万受邀在数据库内核专场进行了《使用 TiDB 列存引擎进行实时数据分析》的主题演讲。

由 PingCAP 创立的分布式关系型数据库 TiDB,为企业关键业务打造,具备「分布式强一致性事务、在线弹性水平扩展、故障自恢复的高可用、跨数据中心多活」等企业级核心特性,帮助企业最大化发挥数据价值,充分释放企业增长空间。

DTCC 年度最佳创新产品丨真正的 HTAP 数据库是怎样炼成的?

2020 年 5 月, TiDB 推出 4.0 版本,作为 TiDB「新一代云原生分布式数据库」道路上的重要里程碑,TiDB 4.0 在提供良好的交易处理能力前提下,创新性地引入了基于 Raft 算法的 HTAP 架构解决方案。这套架构设计成功地解决了以往困扰 HTAP 架构的隔离性,一致性和性能之间的矛盾,以此为基础的论文《TiDB: A Raft-based HTAP Database》被国际顶级数据库会议 VLDB 2020 收录,标志着该架构得到了全球学术界的认可。

DTCC 年度最佳创新产品丨真正的 HTAP 数据库是怎样炼成的?

韦万 | PingCAP 数据库内核研发工程师

在数据库内核专场上,PingCAP 数据库内核研发工程师韦万分享了 TiDB 新版发布的专为实时分析场景设计的 TiFlash 的系统架构设计和技术特点以及案例分享。TiFlash 拥有匹配行存的实时更新数据能力,可以作为可随意拔插的列存镜像实时同步在线数据。配合 TiDB 优化器的智能选择功能,不但可以让用户实时查询在线交易数据,而不必担心影响业务稳定,也可以当做查询加速器,为 TiDB 分析场景提速,使得整个体系同时拥有行存和列存的性能优势。

演讲结束后,韦万还受邀接受了 IT168 编辑高博的采访,以下为内容分享:

很高兴有机会采访到您,请您简单介绍下自己以及负责和关注的领域?

我叫韦万,来自 PingCAP,是一名数据库内核研发工程师。目前主要负责 TiDB 的实时分析方向存储侧的研发工作,关注数据库、高性能计算和分布式系统等技术方向。

数据库内核研发在大家看来似乎是份很神秘的工作,内核工程师每天的工作内容有哪些?一名合格的内核工程师都有哪些门槛和要求?

其实工作内容和其它程序员没有太大区别,涉及技术调研,需求分析,编码实现,测试调优等各个方面。由于是做基础软件的,我们重视产品功能的竞争力的同时,对质量更加注重。比如我们的方案评审相对更严格,新功能和 bug fix 方案,需要确保其它同学,包括社区成员都能充分理解。要达到这个程度,需要研发人员提供详实的数据,以及完整的决策链路,充分听取其它人的建议,最终说服大家,达成一致才会动手去做。这看起来费时费力,但却可以让产品的设计保持在一个正确的路径上。

如果你是一名希望进入这个行业的新人,那么扎实的 CS 基础,以及对数据库的热爱,足以让你在数据库研发领域起步。TiDB 作为一个流行的数据库开源项目,有丰富的技术资源和活跃的社区,并且有很多适合新手的任务帮助你快速成长。

本届 DTCC 以“架构革新 高效可控”为主题,您对此有何理解?请结合这些年数据库技术架构的演变,谈谈您对这个主题的见解。

我们现在处于一个快速革新的时代,一个技术升级的时代。从单机到分布式,从本地到云端,从稳态到敏态等等。它对传统数据库厂商和新势力来说都是巨大的机遇,未来的赢家一定是把握住了这次技术升级的红利。

目前 TiDB 在国内外互联网头部公司得到广泛的应用,造就了成熟的产品和领先的应用场景,顶级的开源社区吸引了全球的研发人才,在这个基础上相信会诞生领先的数据库产品。随着企业数字化转型的不断升级,事实上现在已经到了一个拐点,中国数据库厂商将迎来新一波的高速发展机遇。

TiDB 作为贵司的主打产品,近来都进行了哪些产品的升级迭代和技术的创新?这些升级能够对用户业务的提升有哪些积极意义?

所有的需求最终一定是来自用户需求的。TiDB 的策略是和社区和用户紧密结合,共同成长,从而获得更高的加速度。

引入 TiFlash 增强 OLAP 能力,让 TiDB 成为真正的 HTAP 数据库;我们支持了悲观锁,优化高频事务冲突的场景;优化分布式事务的二阶段提交降低延迟,并支持 Clustered Index,让 TiDB 更能胜任金融场景的苛刻要求;支持云上 DBaaS 模式,让 TiDB 在云上使用成本降到最低。未来,随着 TiDB 的生态持续扩大,它的迭代速度会更快。

您本次 DTCC 的演讲题目是《使用 TiDB 列存引擎进行实时数据分析》,通过该议题分享能够给听众带来哪些启发和思考?TiFlash 作为 TiDB 新版发布的高性能列存引擎,其产品主要特点和优势有哪些?

通过合理的设计,我们可以扩展单个数据库的边界。TiDB 通过引入 TiFlash,拥有了和其它分析型数据库一样甚至更强大的 OLAP 能力,即同时拥有了金融核心级别的 OLTP 能力和对实时数据进行快速分析的 OLAP 能力。同时 OLTP 和 OLAP 又能保证隔离效果,互不影响。用户可以大大的简化他们的技术栈,这样的体验对于业务开发者来说是非常友好的,并且可以降低企业的成本。

纵观全球数据库市场,您认为目前国内数据库市场和国际市场相比存在哪些差异化?相比之下国内数据库产品有哪些优势,又有哪些需要借鉴之处?

我认为国内企业对于数据库的要求,已经普遍比国际市场更高了。在中国头部的金融与互联网用户的业务场景中,产生了海量规模的数据,最高的 TPS 需求,最低的延迟要求,最复杂的场景锤炼,以及配上较差的付费习惯,活脱脱一个 Hell 模式。在这种环境下走出来的产品,必定已经包含了成为世界级数据库产品的基因。

在产品策略上,作为国内的同业者作为数据库领域的追赶者,可以更关注如何利用新场景、新技术、新平台的机遇。Snowflake 就是一个非常好的学习对象,它利用云平台的优势,重新定义了了数据库仓库的商业模式。

请您做一下简单的预测,您认为未来数据库市场将会发生怎样的转变,未来数据库平台的发展趋势是怎样的?

  • 云原生是大趋势,拥有云基因,充分利用云基础设施的数据库将赢得未来
  • 开源将成为基础软件包括数据库的重要甚至主要的产品形态
  • 垂直领域数据库将长期存在并越发繁荣,直到新技术的出现,将它们统一起来

贵司在今年 11 月份刚刚完成 2.7 亿美元的 D 轮融资,并表示本轮融资将用于分布式数据库关键核心技术的研发,未来对通用分布式数据库 TiDB 有哪些升级规划?

我们会进一步强化 TiDB 产品,扩大性能和稳定性的领先优势,把覆盖范围内的功能点做透;会持续进行架构升级,以更好支撑本地以及云上两种部署模式;让 TiDB 变得更易理解,更易使用,能稳定支持更多场景。

中国数据库技术大会到今年已经是第十一届了,对于这次大会,您又有哪些期待呢?

最近几年是中国数据库技术快速发展的几年。业界诞生了不少优秀项目和人才,我非常期待能和他们交流学习,希望能看到更多干货技术分析。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这