腾讯基于全时态数据库技术的数据闪回

作者简介:李海翔,网名“那海蓝蓝”,腾讯金融云数据库技术专家。中国人民大学信息学院工程硕士企业导师。著有《数据库事务处理的艺术:事务管理和并发访问控制》、《数据库查询优化器的艺术:原理解析与SQL性能优化》,广受好评。

2018年11月16日,中国数据技术嘉年华技术大会上,腾讯TDSQL团队带来腾讯最新的数据库核心技术课题:基于全时态数据库技术的数据闪回。腾讯专家工程师李海翔在大会上做了该课题的分享。

此次分享是基于腾讯研发的分布式全时态数据库系统和分布式事务处理的创新技术,TDSQL原创性研发了全时态数据的闪回功能,并提出一种基于全时态数据模型的新型架构—HTAC集群架构。主要内容包括:TDSQL概述、TDSQL全时态数据库核心理念、TDSQL分布式全时态数据库原理与架构、TDSQL基于HTAC的全闪回技术四个部分。

一、 TDSQL概述

TDSQL分布式数据库已稳定运行十年之久,不仅支撑了腾讯公司的计费业务,而且在微众银行、数字广东等金融、政务等领域有着广泛应用。这几年,TDSQL在技术层面不断进步,研发诸多新特性,如多级分区、热点更新、隐含主键、分布式事务等,不仅有力地支撑了事务型的数据库应用,而且在体系结构上也朝Spanner架构迈进,是一个名副其实的NewSQL系统。

TDSQL分布式事务处理技术,有了长足进步,不仅表现在支持分布式事务,而且在MVCC技术的基础上做了创新,使得TDSQL的事务处理技术基于原创技术不断发展。

腾讯数据库技术的发展始终把握两条线:一是从数据价值出发扩展数据库的能力为业务提供服务;二是从技术角度出发提升数据库的能力为数据处理提供服务。2018年,TDSQL提出全时态数据模型,对分布式全时态数据库进行研发,并推出处理全时态数据类型的HTAC(Hybrid Transaction /Analytical  Cluster,混合事务/分析集群)架构。

 二、TDSQL全时态数据库核心理念

TDSQL的原创技术,是基于业务的需求,为解决业务问题而进行的创新。腾讯公司基于TDSQL关系型数据库研发的时态数据库,由数据库系统统一管理海量的全时态数据、当前数据,解决了上述四个业务中的问题(应用开发复杂、数据逻辑割裂、实时特性丢失、数据管理复杂)。

因存储成本等原因,现代的数据库系统只保留有数据的当前值,历史态数据被丢弃。而数据作为重要的资产,不管是当前数据,还是历史数据,都具有重要价值。因此,历史态数据存储、被分析、被挖掘、被反复使用,是当前互联网企业的需求。尤其是金融类历史态数据,出于数据安全的原因,需要被多次计算验证,在腾讯公司的计费业务中,带有时态属性的数据被管理的需求日益旺盛。

“数据有价值,历史数据也富有价值”,这是TDSQL时态数据库的核心价值观。TDSQL团队认为:数据的状态属性,标识数据的生命周期轨迹。数据的生命周期分为三个阶段,每个阶段刻画数据的不同状态属性,以标识数据的生命周期轨迹中所处的状态。

  • 当前态(Current State):数据项最新版本的数据,处于当前阶段称为当前态。
  • 历史态(Historical State):数据项历史上的一个状态,其值是旧值,不是当前值,称为历史态。一个数据项的历史态,可以有多个,反映了数据的状态变迁的过程。处于历史态的数据,只能被读取不能再被修改或删除。
  • 过渡态(Transitional State):处于从当前态向历史态转变的过程中。处于过渡态的数据,称为半衰数据。

这三个状态,涵盖了一个数据项的生命周期,合称为数据全态(full-state),或称为全态数据。在MVCC机制下,数据的三种状态均存在;在非MVCC机制下,数据只存在历史态和当前态。

  • 当前态:MVCC或封锁并发访问控制机制下,事务提交后的数据的新值处于当前态。
  • 历史态:MVCC机制下,当前活跃事务列表中最小的事务之前的事务生成的数据,其状态处于历史态。在封锁并发访问控制机制下,事务提交后,提交前的数据的值变为历史态的值,即数据项的旧值处于历史态。
  • 过渡态:MVCC机制下,被读取的版本上尚有活跃事务(非最新相关事务)在使用,因最新相关事务修改了数据项的值,其最新值已经处于一个当前态,被读取到的值相对当前态已经处于一个历史状态,故其数据状态介于当前态和历史态之间,所以称为过渡态。

数据的双时态属性,分别为有效时间属性、事务时间属性。

基于上述内容,TDSQL构建了全时态数据模型,包括全态数据和时态数据,以及其操作语义。TDSQL全时态数据库,具备如下图所示的特性,能够涵盖双时态的数据应用、数据安全、数据分析、简化应用开发等四大方面的问题。

三 、TDSQL分布式全时态数据库原理与架构

TDSQL的核心技术之一,是数据模型的定义、全态数据模型和双时态数据模型的结合。

TDSQL的核心技术一数据模型

TDSQL全时态数据库不仅支持全态和双时态数据的存储,还支持其他丰富操作。在这个模型中,全态数据体现在数据项的历史版本上,时态数据不仅有事务时间时态,还有有效时间时态。全态数据的历史态数据,可以追溯数据库系统的操作发生时间以及发生的操作类型。具备丰富的操作语义,是TDSQL全时态数据库的一个特色。

TDSQL的核心技术二历史数据转储时机

历史数据的存储时机,是TDSQL的另外一个核心技术。TDSQL巧妙地利用MySQL的回滚段和Purge机制,实现了历史态数据的转储,原理图如下:

TDSQL的核心技术三:在全时态数据模型上的事务操作

数据存储之后,需要基于MVCC做历史态数据的可见性判断,原理如下:

TDSQL基于全时态数据模型,实现了新的数据一致性快照点的构建,可以获取任何时间段(包括历史发生过的时间)上的任何状态的数据。

作为原创技术,TDSQL的核心技术点及其思路,相关论文已经在World Wide Web journal上以题为《Efficienttime-interval data extraction in MVCC-based RDBMS》发表,详情可参见:https://link.springer.com/article/10.1007/s11280-018-0552-7

TDSQL分布式数据库系统的历史态数据的全局计算,依赖如下图所示的TDSQL分布式事务处理机制:

TDSQL的核心技术四:创新的HTAC架构

TDSQL既支持全时态数据的无限存储,同时实现了TDSQL对全时态数据的强大计算能力,这得益于创新的HTAC架构。此架构使得全时态数据模型在分布式数据库系统内做到了三个融合:全态数据融合、AP和TP处理融合、架构向数据模型融合。

如下图,数据库服务由HTAC提供:

 HTAC是一个集群系统,分为TP集群和AP集群,TP提供事务处理业务,AP提供历史态数据的查询、分析功能。

SR,SQLRouter层,根据查询语句、查询操作的语义和元数据,路由查询到TP或AP子系统。

TP处理当前态数据,每份数据为一个SET,一个SET存在多个副本,副本间通过TDSQL的强同步技术实现数据强一致。SET中的数据可以线性扩容。节点失效通过ZooKeeper进行管理。跨节点的写事务通过2PC技术实现分布式事务对数据操作的原子性、一致性。

AP提供无限存储功能,保存历史态数据,并提供历史态数据的查询、分析业务。TP中定义历史态数据迁移策略,按策略把历史数据原子迁移到AP系统,并注册到MD元数据管理器。

极高的性能

实现数据库全时态能力之后,TDSQL全时态数据库依旧保持近乎原系统性能,这是一件不容易的事情。使用业界通用的sysbench测试工具进行OLTP测试,TDSQL全时态数据库的性能近乎完美。

四 、TDSQL全时态数据库的闪回

今天,我们分享基于全时态数据库基础构建的技术之一:闪回。这是非常酷的特性,用户在TDSQL系统中可以实现“一切过往兼可追溯”的梦想。闪回是DBA们特别欢迎的一个重要特性,TDSQL提供了任意时间点的任意数据的闪回能力,其他数据库诸如Oracle只具备阶段性数据的闪回能力。

一旦掌握了TDSQL全时态数据库系统的实现原理,基于此所做的闪回就能很容易理解。其核心问题就是:在全态的数据上,怎么做给定时间点的一致性查询。这个问题在第三节已经谈得十分充分了。接下来,我们来看看TDSQL全时态数据库系统的闪回的特点。可以用一个字概括“全”,称为“全闪回”。全的含义是多种层次的,一是在所有数据项的生命周期内可以进行任意时间点的闪回;二是TDSQL作为一个分布式系统,因为其创新的全局读一致性技术,做到了在分布式系统下的全局闪回;三是闪回可以在HTAC系统中的AC子系统完成,这不影响生成系统。可随时进行闪回,小伙伴们对此贴心的架构设计非常满意。

 五、 结语 :TDSQL的核心理念,为数据赋能数据的创造是由用户和其业务决定的,他们是创造数据的甲方。数据库承载了数据的管理职责,是否数据库系统也可以参与到数据的创造环节中来呢?

在TDSQL团队看来,全时态这一概念,正是数据库系统参与到数据创造环节的最佳契机。数据库系统为数据赋于了事务时态,赋于了DML操作过程中的事件源,甚至可能为数据之间赋于关联关系,使得数据库系统也成为了数据的创造者。

原创技术的背后,是“为数据赋能”的理念推动着TDSQL团队潜心钻研全时态数据库系统,从而让数据拥有更多的价值,数据库变成数据的生产者,参与数据的创造。

原文链接:https://mp.weixin.qq.com/s/MvZppUivX58KlE0K8GVoyA

Image placeholder
tgz2018
未设置
  83人点赞

没有讨论,发表一下自己的看法吧

推荐文章
借力中国数据库技术大会 达梦DM8数据库新品正式发布

5月8日—10日,第十届中国数据库技术大会(DTCC2019)如约而至。本届大会以“数据风云,十年变迁”为主题,设定2大主会场及21个技术专场,邀请了来自国内外互联网、金融、教育等行业百余位技术专家,

Oracle ADW业务数据平台点亮DTCC2019数据库技术大会!

数字大脑、互联网+、智能+、人工智能、边缘计算……信息技术领域好像从不缺少概念,但无论世界如何变化,数据是一切业务的核心。要想有效管理、分析和挖掘数据带来的价值,数据库一定是必需品。2019年5月8日

(PPT 下载,来了!)DTCC2019 中国数据库技术大会见证实录

2019年5月8日-10日,DTCC2019第十届中国数据库技术大会历时3天,圆满收官。作为国内顶级的数据领域技术盛会,共有23个技术场次,邀请超过125名专家,包括来自阿里、京东、苏宁、滴滴出行、百

DTCC2019数据库技术评选结果全面揭晓,四大类别奖项新鲜出炉!

数据风云,十年变迁,而DTCC是一切变革的见证者。作为数据库领域顶尖级的盛会,DTCC已经成功举办了九届,今年是第十届。继承往届会议规模大、涉及话题更前沿、演讲内容更深入等特点之外,DTCC2019数

2019数据库趋势研究:谁是最受青睐的数据库?

哪些数据库在2019年最受青睐?本文向DeveloperWeek的数百名业内人士咨询了当前NoSQL与SQL的使用情况,得到了有关MySQL、MongoDB、PostgreSQL、Redis和其他方面

2019数据库趋势研究:谁是最受青睐的数据库?

哪些数据库在2019年最受青睐?本文向DeveloperWeek的数百名业内人士咨询了当前NoSQL与SQL的使用情况,得到了有关MySQL、MongoDB、PostgreSQL、Redis和其他方面

从关系型数据库到分布式机器学习,揭秘腾讯大数据十年发展历程

大数据技术在过去10多年中极大改变了企业对数据的存储、处理和分析方式。如今,大数据技术逐渐成熟,涵盖了计算、存储、数仓、数据集成、可视化、NOSQL、OLAP分析、机器学习等丰富领域。在未来,大数据技

腾讯万亿级 Elasticsearch 技术解密

作者: johngqjiang,腾讯TEG云架构平台部研发工程师Elasticsearch(ES)作为开源首选的分布式搜索分析引擎,通过一套系统轻松满足用户的日志实时分析、全文检索、结构化数据分析等多

对话蒋杰、丁奇,腾讯云数据库之路

此前,笔者曾经就腾讯云数据库战略升级一事写过一篇文章,对腾讯云数据库聚焦“云原生”“自治”“超融合”三大方向背后原因,以及怎样理解腾讯云数据库战略升级与五大新品、三大方向的关系进行了分析。近日,在腾讯

如何理解腾讯云数据库战略升级?

近日,腾讯云数据库在京正式启动战略升级,宣布未来将聚焦云原生、自治、超融合三大战略方向,以用户为中心,联接未来。并在现场面向全球用户同步发布五大战略级新品,包括数据库智能管家DBbrain、云数据库T

腾讯数据库专家雷海林分享智能运维架构

2019年5月8日-10日的DTCC2019年中国数据库大会上,腾讯云数据库专家工程师雷海林首受邀做了主题为《TDSQL智能运维平台-扁鹊架构与实践》的技术分享,以下为大会现场演讲实录。雷海林在大会现

专访腾讯云数据库负责人丁奇:打造超越用户想象的产品

“就市场份额来说,腾讯云在国内还不是第一名,但从国内上云企业比例看,剩余的还有很多,因此,大家都还有机会,就看谁能真正解决用户的痛点。”                                

腾讯林晓斌:数据库的高易用性如何实现?

腾讯云基于QQ、微信、腾讯游戏等海量业务的技术锤炼,从基础架构到精细化运营,从平台实力到生态能力建设,腾讯云将之整合并面向市场,使之能够为企业和创业者提供集云计算、云数据、云运营于一体的云端服务体验。

基于 Spark 的数据分析实践

转载本文需注明出处:微信公众号EAWorld,违者必究。引言:Spark是在借鉴了MapReduce之上发展而来的,继承了其分布式并行计算的优点并改进了MapReduce明显的缺陷。Spark主要包含

大数据是个技术,数据库才是它最好的产品形态

星环科技(以下简称:星环)的定位是大数据基础软件公司,而非数据库公司,却在数据库方面,做的比很多数据库公司更好更猛?这是为何?“我们认为,大数据是个技术,数据库才是它最好的产品形态”,星环科技研发总监

这波技术社区的程序员,技术视野有点堪忧!

前一段时间写了一篇文章《凌晨1点突发致命生产事故,人工多线程来破局!》,只是一篇生产事故的记实文章,没想到在圈内流传甚广,其中有程序员对其中的细节有点疑惑,刚好国庆可以和大家再进一步探讨一下。现在技术

冬虫夏草之技术路线图之一【“技”——技术篇】

作为一名28年证券机构从业经历的老兵,杨松一直在观察和研究IT技术对金融机构的业务重构,以及证券业务变革相关的内容。今天,让我们来看看这位金融业内人士如何利用他28年的行业积累,通过“技”“术”“路”

“我是技术总监,你干嘛总问我技术细节?”

题图:fromZoommy每个周末的午后,把儿子送进EF读书,随后找个环境幽静的咖啡馆坐一会,这便是我一周中最放松的时光。在咖啡厅的气氛和环境这两点上,我似乎有强迫症,比如装修主色调的运用,地上装饰是

2019年度IT168技术卓越奖名单:技术开发类

与边缘计算、人工智能、量子计算、区块链等高大的技术不同,以ERP、CRM、BI等为代表的应用类软件正在以更创新、更接地气的方式,深入到各个行业。所以,PaaS正在成为云时代的主角。基于PaaS,Saa

云端的生存之道,第 2 单元:将 Spring Boot 应用程序连接到云托管的数据库

前提条件 本系列教程的第1部分,因为本教程直接以第1部分中的课程内容和完成的操作为基础。 一个IBMCloud帐户 云原生数据持久性 IBMCloud提供了许多可持久存储数据的选项。在本教程中,我

两万字的数据库面试题,不看绝对后悔

一、基本概念1.主键、外键、超键、候选键超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。候选键:是最小超

2020年前必须掌握的数据库面试问题~

一、为什么用自增列作为主键1、如果我们定义了主键(PRIMARYKEY),那么InnoDB会选择主键作为聚集索引。如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索

爱奇艺的数据库选型大法,实用不纠结!

来源:rrd.me/fgGsG我们进行数据库选型的时候要考虑哪些问题?有哪些需求?待选用的数据库是否和需求对得上?是不是直接可以拿来用?需不需要一些额外的开发?这些都会在本文的分享中提及。一、数据库技

SQL Server 2014的数据库引擎新增功能(参考sqlserver官方文档)

SQLServer2014数据库引擎引入了一些新功能和增强功能,这些功能可以提高设计、开发和维护数据存储系统的架构师、开发人员和管理员的能力和工作效率。  以下是 数据库引擎已增强的方面。数据库引擎功

数据库大牛李海翔详解全局读一致性技术

作者简介:李海翔,网名“那海蓝蓝”,腾讯金融云数据库技术专家。中国人民大学信息学院工程硕士企业导师。著有《数据库事务处理的艺术:事务管理和并发访问控制》、《数据库查询优化器的艺术:原理解析与SQL性能