论亚马逊QLDB与腾讯TDSQL架构与功能

QLDB之于Amazon数据库生态

Andy Jassy展示了Amazon的database freedom,如图3-1(引用自ref[1]),Amazon提供诸多数据解决方案,涵盖关系型、K-V、内存等存储,并包含图、时序、账本等特型数据库,QLDB即特型数据库之一。

file

QLDB作为Amazon整个数据库服务生态的一个成员,与RDS、DynamoDB、ElasticCache等产品彼此独立但紧密合作,互相补充共同构成database freedom。

QLDB如何与其他产品协作,还需等Amazon开放更多资料。

TDSQL全时态数据库的HTAC架构

图3-2展示了TDSQL全时态数据库的HTAC架构,HTAC基于master-slave架构,此架构下全态数据管理方式为:

● 主节点Current存放当前数据,从节点History存放历史数据;

● 主节点的更新操作引发:

■ 当前数据的版本推进;

■ 数据的旧版本同步至从节点,追加旧版本到历史库;

● Proxy路由TP请求到主节点,操作当前数据;路由AP请求到从节点,执行全态查询。

file

Master-Slave是目前广泛采用的高可用方案之一,HTAC架构基于此,适用性广泛。并且,在现有的数据库服务中增加一备即可承载历史,避免了重新设计部署数据库服务。

主、备在物理上分别存放当前、历史数据,保证数据安全。主节点数据出现问题时,可以使用该从节点的数据快速恢复。另外,当前和历史数据物理上的隔离,导致TP和AP服务切割,因此可以针对AP业务针对优化此从节点。

在主备间传输的历史数据,是原生数据,而非日志。其优势在于,避免本地封装数据,节约计算开销,尽可能降低对业务系统的影响;避免异地解析日志,同样节约计算开销,使得历史数据快速落地存储,实时性高。

小结

QLDB是Amazon数据库生态中的一环,作为RDS等“账本”的存在,事务在RDS上执行,在QLDB上“入账”。

TDSQL全时态数据库采用基于Master-Slave的HTAC架构,在需要追溯历史的数据库实例上增加一备,作为历史数据的存储即可,避免了额外的系统设计和部署,而且数据安全得到进一步保障,快速恢复触手可及。另外,节点间传输原生数据格式,具有对业务系统影响低、历史数据落地快、实时性高的优势。

QLDB:How it works

根据ref[2] FAQ,QLDB支持事务并满足ACID,并且提供SQL-like的接口。以机动车管理系统为例,图4-1(引用自ref[6])为QLDB的插入操作,用户使用SQL-like风格的语句,插入过程如下:

1)首先写Journal,其数据为文档数据格式,并计算其SHA-256哈希值也存放在日志中;

2)写Journal完成,更新Current和History。(图中以二维表的方式展现数据,但QLDB采用文档数据模型)

file

(引用自ref[6])和引用自ref[6])分别为QLDB更新和删除操作,类似的,用户使用SQL-like语句,更新和删除过程先追加写Journal,随后更新Current和History。本质上,这种操作方式,就是“流水日志”,所以历史数据被“Append”到历史库中。而TDSQL天然利用了MVCC中多版本技术,历史数据自然以原生格式沉淀在数据库系统中,没有封装为流水记录、没有重新插入到历史表中的过程,非常自然和流畅地解决了历史数据存储的问题。

更多语义、操作、使用方法等,待Amazon开放更多资料。

** TDSQL全时态数据库功能**

我们将TDSQL全时态数据库的操作称为全时态操作,全时态操作是传统关系操作的超集。除传统关系操作外,全时态操作还提供时态操作和全态操作。

时态操作

TDSQL提供有效时间和事务时间两种时态语义和操作。

有效时间操作:

1.有效时间点查询、有效时间段查询;

2.有效时间区间更新、有效时间区间删除。

事务时间操作:

1.获取某时间点可见的数据;

2.获取某时间段可见的数据集合;

3.获取某事务操作的数据版本;

4.获取事务状态。

ref[10]详细介绍了时态操作的语法语义、内部机制。

全态操作

根据作用域不同,全态操作划分为:

1.当前态数据读取,作用域为当前态数据,即传统关系型数据库操作的作用域;

2.历史态数据读取,作用域为历史态数据,只获取历史数据;

3.全态数据读取,作用域为任意状态数据。

在全态操作中,我们模糊过渡态这一概念。

在以MVCC作为并发控制机制的数据库系统中,传统数据读取操作的作用域为当前态和过渡态。读取到最新的数据版本即当前态,或如图4-4 a例,读已提交(或更高)隔离级别下,事务T1 read获取数据为T2 write之前的值,即过渡态。

历史态数据读取中,获取过去某时段的数据,很可能取到过渡态数据,如图4-4 b。

因此,过渡态数据的读取融于当前态数据读取和历史态数据读取中,根据不同查询要求和数据的可见性决定过渡态数据查出与否。

小结

Amazon目前开放的资料显示,QLDB支持ACID事务,提供SQL-like接口。

TDSQL全时态数据库的功能是完全适用关系型数据库的SQL操作,没有自定义一套新接口,方便了用户的使用。

TDSQL还在时态维度上提供有效时间和事务时间操作,在状态维度上提供全态数据获取。

本文由博客一文多发平台 OpenWrite 发布!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值