-concurrent in database System 数据库系统中的并发 ● serial access: 事务的串行访问。 一个事务结束后,另一事务才开始,这种执行 方式叫事务的串行访问,即事务串行执行。 concurrent access:并发访问。 DBMS可以同时接纳多个事务,各事务可在时间 上重叠。这种执行方式叫并发访问
2 一.concurrent in database System 数据库系统中的并发 ⚫ serial access: 事务的串行访问。 一个事务结束后,另一事务才开始,这种执行 方式叫事务的串行访问,即事务串行执行。 ⚫ concurrent access:并发访问。 DBMS可以同时接纳多个事务,各事务可在时间 上重叠。这种执行方式叫并发访问
inter |eaved concurrency 交叉并发 单CPU系统,各事务只能轮流使用CPU, 这种并发方式叫交叉并发。 s imu taneous concurrency 同时并发 多CPU系统,各事务可同时分别占用不同 CPU,这种并发方式叫同时并发
3 interleaved concurrency: 交叉并发 单CPU系统,各事务只能轮流使用CPU, 这种并发方式叫交叉并发。 simultaneous concurrency: 同时并发 多CPU系统,各事务可同时分别占用不同 CPU,这种并发方式叫同时并发
二. aim for concurrency 并发的目的 。改善系统的资源利用率: 一个事务不同执行阶段需要 不同的资源:用CPU,访磁盘,通信, 串行会造成多数资源闲置。 。改善短事务响应时间:如下 事务T1 事务T2 若T1先开始执行,串行,T2要等很长时间,长事 务多等用户可接受,短事务等太久用户不可接受
4 二. aim for concurrency 并发的目的 ⚫ 改善系统的资源利用率: 一个事务不同执行阶段需要 不同的资源:用CPU,访磁盘,通信, 串行会造成多数资源闲置。 ⚫ 改善短事务响应时间:如下 事务T1 事务T2 若T1先开始执行,串行,T2要等很长时间,长事 务多等用户可接受,短事务等太久用户不可接受
三.Problem of( concurrency 事务并发执行,如不加控制会产 生如下问题: 1.lost update丢失更新 Tl T2 时 间 read(x) read(x) x=x+1, write(x); X=2X, write(x); 事务T1对X的更新丢失,与串行执行比较:初值X=4,x终值: 图次序:8;串行T1,T2为10;T2,T1为9。 称wr ite-一write conflict,写一写冲突
5 三.Problem of concurrency 事务并发执行,如不加控制会产 生如下问题: 1.lost update丢失更新 时 间 ⚫ 事务T1对X的更新丢失,与串行执行比较:初值X=4 , x终值: 图次序:8;串行T1,T2为10;T2,T1为9。 ⚫ 称write—write conflict,写一写冲突。 T1 T2 read(x) . . . x:=x+1; write(x); . . . . . . . . . read(x) . . . . . . x:=2x; write(x); . .
o 2.dirty Read 读脏数据 Tl T2 read(t[x]); 时 write(t[x],t[y]); 间 read(t[y]); (rollback) 由一个事务读取另一个事务尚未提交的数据引起,如T 对元组t的x.y更新,与T2两次读;T1改工资T2统计;T 卷回出现的问题。称read-write conflict,读写冲突 6
6 ⚫ 2.dirty Read 读脏数据 时 间 ⚫ 由一个事务读取另一个事务尚未提交的数据引起,如T1 对元组t的x.y更新,与T2两次读;T1改工资T2统计;T1 卷回出现的问题。称read-write conflict,读写冲突。 T1 T2 . . . . . . write(t[x],t[y]); . . . . . . (rollback) read(t[x]); . . . . . . read(t[y]); . . . . .
上图引发问题: T1对元组t的X.Y更新, T2并发读t[x],t[y], 且x在更新前,y于更新后, 故x,y是不一致的数据。 ● T2计算某种聚合函数 (如AVG)时,如统 计平均工资。T1并发修改工资项,则二 者并发引发的问题。 ● 如T1被卷回,则T2读的y是一个不存在的 值。 ●read-write confl ict
7 上图引发问题: ⚫ T1对元组t的X.Y更新, T2并发读t[x],t[y], 且x在更新前,y于更新后, 故x,y是不一致的数据。 ⚫ T2计算某种聚合函数(如AVG)时,如统 计平均工资。T1并发修改工资项,则二 者并发引发的问题。 ⚫ 如T1被卷回,则T2读的y是一个不存在的 值。 ⚫ read-write conflict
3.unrepeatable read 读值不可复现 时 Tl T2 间 read(x); write(x); read(x); T1并未修改x值,但两次读出值不一致,T1,2串行不 会出现这种问题。 读值不可复现,也是读-写冲突所致
8 3.unrepeatable read 读值不可复现 时 间 ⚫ T1并未修改x值,但两次读出值不一致,T1,T2串行不 会出现这种问题。 ⚫ 读值不可复现,也是读-写冲突所致。 T1 T2 . . . read(x); . . . . . . read(x); . . . . . . write(x); . . . . .