并发控制技术详细介绍

2021年4月27日16:48:16 发表评论 731 次浏览

并发控制在数据库中提供以:

  • (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)收缩阶段:
    在此阶段, 事务只能释放锁, 而不能获取任何锁。

2.时间戳订购协议:时间戳记是可以附加到任何事务或任何数据项的标记, 它表示已以任何方式使用该事务或数据项的特定时间。时间戳可以两种方式实现。一种是直接将时钟的当前值分配给事务或数据项。另一种是附加一个逻辑计数器的值, 该逻辑计数器在需要新的时间戳时保持递增。

数据项的时间戳可以有两种类型:

(i)W时间戳(X):

这意味着将数据项X写入的最新时间。

(ii)R-timestamp(X):

这意味着从中读取数据项X的最新时间。每当对数据项X执行成功的读/写操作时, 都会更新这2个时间戳。

3.多版本并发控制:

多版本方案保留旧版本的数据项以增加并发性。

多版本2锁相:

每次成功写入都会创建一个新版本的写入数据项。时间戳用于标记版本。发出read(X)操作时, 请根据事务的时间戳选择适当的X版本。

4.验证并发控制:乐观方法基于大多数数据库操作不冲突的假设。乐观方法既不需要锁定也不需要时间戳技术。取而代之的是, 事务在提交之前不受限制地执行。使用一种乐观的方法, 每个事务经过两个或三个阶段, 分别称为读取, 验证和写入。

  • (一世)在读取阶段, 事务将读取数据库, 执行所需的计算, 并对数据库值的私有副本进行更新。事务的所有更新操作都记录在一个临时更新文件中, 其余事务不会访问该文件。
  • (ii)在验证阶段, 将验证事务以确保所做的更改不会影响数据库的完整性和一致性。如果验证测试为肯定, 则事务进入写入阶段。如果验证测试是否定的, 则重新启动事务, 并放弃更改。
  • (iii)在写阶段, 更改将永久应用于数据库。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: