Chinaunix首页 | 论坛 | 博客
  • 博客访问: 427237
  • 博文数量: 239
  • 博客积分: 8010
  • 博客等级: 中将
  • 技术积分: 2431
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-02 21:12
文章分类
文章存档

2008年(239)

我的朋友

分类:

2008-06-17 23:19:38

多版本机制

锁机制使用锁,要么延迟一项操作(锁等待),要么中止发出该操作的事务(锁超时),依此来保证事务的串行化调度。而我们这里要讲的多版本机制,则是使用数据的多个版本来实现事务的串行化调度。

多版本是另外一种并发控制机制。使用这种机制,系统对数据的更新操作,需要为数据创建一个新的版本,数据的更新操作在新版本上处理。在更新完成后,这个版本就成为该数据的最新可用版本。任一时刻,系统只允许一个事务对数据进行更新操作,避免了更新的丢失。

对数据的查询操作,系统选择数据最近的可用版本进行读取,并在事务中记录该版本信息,事务在整个处理过程中都只参照数据的这个版本。由于这个数据版本不会被更新,从而有效地解决了存取未落实的数据、不可重复读、幻像读现象问题。

多版本机制有一个好的特性:读请求从不失败,且不必等待。在典型的数据库系统中,读操作比写操作频繁,因而这个优点对于实践来说至关重要。出于性能的考虑,系统应当能够容易而且快速地判定一个事务需要读取数据的那一个版本。

尽管多版本机制能够很好地支持查询处理,但系统对多个数据版本的读取和维护,需要花费更多的CPU、内存、I/O、磁盘空间等系统资源,这反过来也影响了系统对查询处理的快速支持。

常用的多版本机制有:多版本时间戳机制和多版本两阶段封锁机制,我们下面将对这两种机制分别进行讨论。

阅读(641) | 评论(0) | 转发(0) |
0

上一篇:6.4.1 多版本时间戳机制

下一篇:6.3.9 死锁

给主人留下些什么吧!~~