并发控制在数据库中提供以:
- (i)加强事务之间的隔离。
- (ii)通过保持事务执行的一致性来保持数据库的一致性。
- (iii)解决读写冲突。
1. Two-phase locking Protocol
2. Time stamp ordering Protocol
3. Multi version concurrency control
4. Validation concurrency control
这些将在下面简要说明。
1.两阶段锁定协议: 锁定是一项确保安全的操作:读取权限或写入数据项的权限。两阶段锁定是一种用于获取共享资源所有权而不会造成死锁的过程。
两阶段更新算法中发生的3个活动是:
(i). Lock Acquisition
(ii). Modification of Data
(iii). Release Lock
如果无法在不等待另一个进程完成使用锁的情况下获取所有所需资源的情况下, 两阶段锁定可通过释放已获取的所有资源来防止在分布式系统中发生死锁。这意味着没有进程处于持有某些共享资源并等待另一个进程释放其所需共享资源的状态。这意味着由于资源争用不会发生死锁。
两阶段锁定协议中的事务可以采用以下两个阶段之一:
- (i)成长阶段:
在此阶段, 事务只能获取锁, 而不能释放任何锁。事务获取其所需的所有锁时的点称为"锁点"。 - (ii)收缩阶段:
在此阶段, 事务只能释放锁, 而不能获取任何锁。
数据项的时间戳可以有两种类型:
(i)W时间戳(X):
这意味着将数据项X写入的最新时间。
(ii)R-timestamp(X):
这意味着从中读取数据项X的最新时间。每当对数据项X执行成功的读/写操作时, 都会更新这2个时间戳。
3.多版本并发控制:
多版本方案保留旧版本的数据项以增加并发性。
多版本2锁相:
每次成功写入都会创建一个新版本的写入数据项。时间戳用于标记版本。发出read(X)操作时, 请根据事务的时间戳选择适当的X版本。
4.验证并发控制:乐观方法基于大多数数据库操作不冲突的假设。乐观方法既不需要锁定也不需要时间戳技术。取而代之的是, 事务在提交之前不受限制地执行。使用一种乐观的方法, 每个事务经过两个或三个阶段, 分别称为读取, 验证和写入。
- (一世)在读取阶段, 事务将读取数据库, 执行所需的计算, 并对数据库值的私有副本进行更新。事务的所有更新操作都记录在一个临时更新文件中, 其余事务不会访问该文件。
- (ii)在验证阶段, 将验证事务以确保所做的更改不会影响数据库的完整性和一致性。如果验证测试为肯定, 则事务进入写入阶段。如果验证测试是否定的, 则重新启动事务, 并放弃更改。
- (iii)在写阶段, 更改将永久应用于数据库。
推荐阅读
- Python GUI Tkinter入门用法指南
- Win8.1如何给“这台电脑”改名?
- Win8每次开机都要2次如何处理?
- Win8找不到本地安全策略的处理办法
- Windows8系统商店提示未连接到Internet的处理办法
- Win8如何设置ReadyBoost?Win8设置ReadyBoost的办法
- Win8系统开机登录密码如何删除?
- Win8开始屏幕程序命名分组的技巧
- Windows8系统下如何调整鼠标双击速度?