CMU Advanced DB 课程笔记#2:数据库工作负载和数据库事务模型

本文是CMU Advanced DB课程笔记的第二部分,主要探讨数据库工作负载,包括OLTP、OLAP和HATP,并详细阐述了数据库事务的不同模型,如Flat Txns、Nested Txns、Saga Txns等,分析了它们的特点和应用场景。
摘要由CSDN通过智能技术生成

CMU Advanced DB 课程笔记#2:数据库工作负载和数据库事务模型

数据库工作负载:

数据库工作负载有主要分为两种:
       在线事务处理(OLTP):每次只读取或更新数据库的一小部分,比如说用户去淘宝购物,用户只能对自己的购物车或者地址进行操作,这些操作只会涉及到很小的一部分数据。

       在线分析处理(OLAP):和OLTP不同的是,OLAP会对数据库的大量数据进行操作,例如进行连接或聚合运算,比如说淘宝会对大量的用户数据进行分析,来帮助淘宝进行商业决策,更好的为用户服务。

       近几年出现了混合事务+分析处理(HATP)的数据库,在HATP数据库中既可以进行OLTP操作,又可以进行OLAP操作,避免了资源的浪费。

       如下图所示是常见的企业配置数据库的方式,公司用前端的OLTP数据库来进行事务处理,一个公司可以有好几个OLTP数据库。当公司想要对这几个OLTP数据库内的数据进行分析的时候,公司需要把数据从OLTP数据库拿出来,进行提取转换加载(ETL)操作,该操作会对数据进行清洗以及转换,把数据格式统一起来加载到后端的OLAP数据库中。然后在OLAP数据库中进行分析操作,必要的时候OLAP数据库还会给OLTP数据库返回计算的结果。
bifurcated env
       以淘宝为例,淘宝在前端用OLTP收集用户的物品点击信息,在后端OLAP数据库中计算用户可能感兴趣的物品,将这个物品返回给前端OLTP数据库,以便用户下次访问的时候将这个物品呈现给用户。

       HTAP数据库允许了某些只能运行在后端OLAP数据库的操作运行在前端OLTP数据库中,减少了数据从

OLTP DB --> ETL --> OLAP DB --> OLTP DB

之间传输的时间,但是HTAP不能取代ETL。

数据库事务(Transaction简称为Txn) Model:

       Transaction是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。—维基百科
       数据库事务模型主要有六种,分别是:Flat Txns,Flat Txns+ Savepoints,Nested Txns,Chained Txns,Compensating Txns,Saga Txns,以下对这些模型进行具体介绍。

Flat Txns:

       我们现在所说的transaction大多指的是Flat Txns。Flat Txns以BEGIN开头,后面跟着一系列操作,最后以COMMIT或者ROLLBACK结束。

       如下图所示,Txn #1BEGIN开头,紧接着对A进行读取,对B进行写操作,最后COMMIT,表明B被永久写入数据库中了, Txn #2在对B进行写操作之后ROLLBACK,表明对B的写操作会回滚,B不会被写入数据库中。

FLat

       Flat Txns的缺点:当数据库需要rollback的时候,需要rollback这个transaction的所有操作。当数据库在进行transaction的时候崩溃了,所有对数据库的写操作都会丢失。比如说银行需要对大量用户数据进行更新,使用FLAT Txns会花费大量的时间更新数据,若这时数据库崩溃或冲突所有操作都会丢失。

Flat Txns+ Savepoints:

       为了解决Flat Txns的这个缺点,我们可以给DB加savepoint,savepoint保存了transaction当前的状态,允许用户访问这个状态。用户可以用ROLLBACK命令回滚到某个savepoint,用RELEASE来摧毁某个savepoint。
       如下图所示,Txn #1BEGIN语句执行时候自动生成一个new savepoint,然后对这个savepoint写入A

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值