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

2008年(239)

我的朋友

分类:

2008-06-18 00:14:55

锁表缓冲区

锁表缓冲区,在数据库系统启动时分配,是一块共享内存空间,用来存放数据库系统中为数据库对象所加的锁。

数据库系统采用并发机制,同时为许多用户提供服务,这些用户可能需要同时操作相同的数据。为保证数据的更新操作不会丢失,在处理数据前系统要对数据加相关的锁。在更新完成后,这些锁才被释放。

代理进程在更新数据前,根据操作所需要的锁类型,检查锁表缓冲区,确认需要的锁是否能够获得。这分为两种情况:

1)锁表缓冲区中没有相排斥的锁存在。代理进程在锁表缓冲区中加入锁,然后继续数据的处理。

2)锁表缓冲区中存在相排斥的锁。在这种情况下,代理进程无法获得需要的锁,不能继续处理,要等待相排斥的锁被释放。如果在设定的锁等待超时时间达到后,代理进程仍旧没能获得锁,数据库系统就回退代理进程要处理的事务。

在事务处理完成后,系统为该事务分配的所有锁被释放,从锁表缓冲区中移走。

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

上一篇:3.2.7 其它缓冲区

下一篇:3.2.5 日志缓冲区

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