ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle的单实例并发控制:Latch(二)

oracle的单实例并发控制:Latch(二)

原创 Linux操作系统 作者:Nalternative 时间:2011-05-04 14:23:59 0 删除 编辑
         Latch是oracle使用的另一种并发控制机制,Latch是一种“低级”锁,这种锁主要用于保护数据结构。

         oracle的内存使用都是以GB为单位的,在这么大的空间中寻找一个数据,必须要以高效的方式组织内存才能保证效率。oracle采用的哈希算法来组织内存的。
        在遍历链表的过程中,链表这个数据结构本身也可能被其他进程并发修改,因此对链表数据结构也需要进行并发控制,这中控制就是使用的Latch。

latch和lock对比:
        Latch和Lock的作用是相同的,都是为了保护资源,防止并发访问造成的破坏。但是Latch的实现机制和Lock有很大差异:
        1、Latch请求、获得、释放等操作是原子操作,使用时间非常短;
         2、进程请求Latch却不能得到时,进程不会释放cpu资源,而是不断尝试请求,只有尝试一定次数之后还不能获得时,才释放cpu,这就是Latch的Spin机制。这时的表现就是cpu利用率非常高,但是吞吐量却很低。
        3、Latch使用的是抢占机制,Lock使用的是排队机制。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25323853/viewspace-694415/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-02-09

  • 博文量
    123
  • 访问量
    178264