文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>lock与latch的认识

lock与latch的认识

时间:2010-08-25  来源:oracle狂热分子

                               lock与latch的认识
        latch和lock一样都是用来在并发环境下保护共享资源被破坏的一种机制。在作用上两者都是一样的,但是在实现方式上,两者又有区别
1,范围:latch是在一个instance级别,而lock是在database级别,比如RAC;
2, 时间:latch一个对像时,通常较短,lock则时间相对长;
3,模式:latch只有一种execlusive模式,9i以后有read only latch,不能性能似乎并不怎么好,,lock则为了提高并发性,有多种模式,如s(5),x(6),ssx(4),sx(3),ss(2),(注:括号中代表是v$lock的锁编号)等;
4,对像:latch主要是内存中的对像,比如buffer cache lru,library cache.shared pool之类的,lock主要是磁盘上的对像,如table,row;
5,获取方式:当多个session请求一个对像的latch时,一个session得到这个对像的latch以后,其他的会话还是会试图去请求latch这个过程称之为spin,当会话请求的次数达到_spin_count定义的次数以后,会话就进入sleep状态。lock则使用排队机制来请求锁。当一个session请求一个对像上的lock时,检查该对像上的锁,根据锁兼容矩阵获得相应模式的锁,进入对像的锁队列。
6,持有时间:当一个会话对一个对像的的操作完成时,会立即释放latch;lock会在请求该lock的事务在commit或rollback时才会释放;
7,实现层次,latch是由oracle的gernic layer实现,而lock则是由transcation management layer实现。
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载