23、数据库事务锁、两阶段提交与死锁详解

数据库事务锁、两阶段提交与死锁详解

1. 数据库事务的乐观与悲观策略

为了实现数据库的并发访问,数据库管理系统(DBMS)必须能够避免或解决用户(包括人员、程序或终端)之间可能出现的冲突。并发控制主要有两种方法:悲观并发控制和乐观并发控制。

悲观并发控制是分布式数据库环境中传统采用的技术。它基于以下假设:
- 除非采取措施防止,否则冲突必然会发生。
- 通过请求系统对信息元素进行锁定或预留,可防止冲突发生。

当一个信息元素被成功锁定后,在该对象被释放之前,其他用户无法以可能导致冲突的方式使用它。若未能获得请求的锁,则表明另一个事务已预留该信息元素,通常会使请求事务等待,直至对象被释放。

乐观并发控制则采用相反的策略。它假定冲突不会发生,并尽可能推迟冲突检测。对数据副本进行修改,并记录潜在冲突。当提交事务请求时,DBMS 会检查是否发生冲突。若未发生冲突,事务中的修改将永久保存,提交成功;若发生冲突,提交失败,事务必须基于数据库的新状态重新执行。

并发控制的目标是尽量减少应用程序等待有效信息元素或基于无效信息元素重复操作的时间。以下因素有助于确定悲观或乐观并发控制哪种更高效:
- 事务类型:一些专家认为,只读事务在乐观控制方案下很少失败,但在悲观方案下可能被锁定。不过,Kung 和 Robinson 的乐观调度协议以及某些时间戳算法可能会中止只读事务。
- 事务长度:复杂事务比只读事务耗时长得多,事务执行时间越长,发生并发冲突的概率越高。同时,数据因正在进行的操作而被锁定的时间越长,其他需要该信息元素的事务等待的可能性就越大。
- 执行环境的复杂性:数据库中复杂关系的可能性意味着锁定一个信息元

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值