为数据赋能:腾讯TDSQL分布式金融级数据库前沿技术 (2)

基于上述原因,腾讯公司基于TDSQL关系型数据库研发了时态数据库 T-TDSQL,由数据库系统统一管理海量的全时态数据、当前数据,解决了上述四个业务中的问题。

img

业务痛点的解决,是基于数据库的特点和业务场景进行深入分析和思考而得以解决的。

img

因为数据有价值,所以TDSQL团队认为:历史数据富有价值。这是TDSQL时态数据库T-TDSQL的核心价值观。因此,我们给出了TDSQL对于数据的新的认识。

TDSQL认为:

数据的状态属性,标识数据的生命周期轨迹。数据的生命周期分为三个阶段,每个阶段刻画数据的不同状态属性,以标识数据的生命周期轨迹中所处的状态。

当前态(Current State):数据项的最新版本的数据,是处于当前阶段的数据。处于当前阶段的数据的状态,称为当前态。

历史态(Historical state):数据项在历史上的一个状态,其值是旧值,不是当前值。处于历史阶段的数据的状态,称为历史态。一个数据项的历史态,可以有多个,反映了数据的状态变迁的过程。处于历史态的数据,只能被读取不能再被修改或删除。

过渡态(Transitional State):不是数据项的最新的版本也不是历史态版本,处于从当前态向历史态转变的过程中。处于过渡态的数据,称为半衰数据。

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

当前态:MVCC或封锁并发访问控制机制下,事务提交后的数据的新值处于当前态。

历史态:MVCC机制下,当前活跃事务列表中最小的事务之前的事务生成的数据,其状态处于历史态。在封锁并发访问控制机制下,事务提交后,提交前的数据的值变为历史态的值,即数据项的旧值处于历史态。

过渡态:MVCC机制下,被读取的版本上尚有活跃事务(非最新相关事务)在使用,因最新相关事务修改了数据项的值,其最新值已经处于一个当前态,被读取到的值相对当前态已经处于一个历史状态,故其数据状态介于当前态和历史态之间,所以称为过渡态。

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

有效时间属性表示数据表示的对象在时间属性上的情况。如Kate中学起止时间是2000-09-01到2003-07-30,而大学起止时间是2003-09-01到2007-07-30,这里的时间就是有效时间。

事务时间属性表示数据的某个状态的时间发生时刻。数据具有其时态属性,即在何时数据库系统进行了什么样的操作。某项操作在数据库系统内被封装为事务,而事务具有原子性。因此,我们采用了事务标志来标识一个数据的事务时态属性。

从形式上看,有效时间属性和事务时间属性,在数据模型中用普通的用户自定义字段进行表示,只是用特定的关键字加以描述,供数据库引擎进行约束检查和赋值。

TDSQL团队期望,构建一个数据库系统,解决如上问题,新系统应该提供的特性如下:

img

因此,基于TDSQL的T-TDSQL时态数据库,有了如下的特性,这些特性,能够涵盖双时态的数据应用、数据安全、数据分析、简化应用开发等四大方面的问题:

img

三、T-TDSQL的核心技术

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

1.T-TDSQL的核心技术一,数据模型

在这个模型中,全态数据体现在了数据项的历史版本上;时态数据不仅有事务时态、还有有效时间时态。而全态数据的历史态数据,不仅可以追溯数据库系统的操作发生时间,还可以追溯发生的操作类型,如下图中的“Operation”列,可以知道在数据项上曾经发生的DML操作是UPDATE还是INSERT还是DELETE。这是一个非常酷的特性,这使得用户在T-TDSQL系统中可以实现“一切过往兼可追溯”的梦想。

img

2.T-TDSQL的核心技术二,历史数据转储时机

历史数据的存储时机,是T-TDSQL的另外一个核心技术。

T-TDSQL用全态的数据概念,巧妙地利用MySQL的回滚段和Purge机制,实现了历史态数据的转储。一个原理图如下:

img

3.T-TDSQL的核心技术二,一致性快照点

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyzggg.html