博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cache buffers chains latch
阅读量:5140 次
发布时间:2019-06-13

本文共 905 字,大约阅读时间需要 3 分钟。

cache buffers chains latch
从 Oracle 8i Database 开始, 散列锁存器<-------(1:m)------>hash bucket<-------------(1:1)---------->hash chain
1.每个逻辑读取需要一个latch get操作个一个CPU
2.从latch get 例程中获得的唯一方法是获取锁存器
3.在任意一个时刻,只有一个进程可以拥有cache buffers链,并且这个锁存器覆盖许多数据库,另一个进程可能需要其中一些数据块。
      为了使用高速缓冲区,要查询或修改Hash chain的进程必须获取管理响应Chain的Cache buffers chains latch.
因为一个Cache buffers chains latch保护多个Hash Bucket。从Oracle 9i起,以只读为目的的查询Chain时,可以将cache buffers chains latch
以Shared 模式共享,因此有助于减少争用。
对于Shared 模式的cache buffers chains latch 有几个注意点:
若能共享cache buffers chains latch,理论上不应该发生同时执行Select 操作引起cache buffers chains latch 争用。
但是实际测试结果,同时执行Select操作依然会发生锁存器争用。
其理由是与buffer lock相关。若为了读取工作,以Shared 模式已获得latch时,读取实际缓冲区过程中需要以Shared模式获取buffer lock,
在此过程中需要部分修改缓冲区信息。因此在获取buffer lock过程中,需要将锁存器修改为Exclusive模式,在释放buffer lock期间也需要Exclusive模式
获取锁存器。在此过程中因为发生了争用,所以要等待latch:cache buffers chains事件。

转载于:https://www.cnblogs.com/zhaoyangjian724/p/3797853.html

你可能感兴趣的文章
python基础之python基本数据类型
查看>>
vue中-webkit-box-orient:vertical打包放到线上不显示
查看>>
[Swift通天遁地]一、超级工具-(20)图片面部聚焦:使图像视图自动聚焦图片人物的面部位置...
查看>>
解决SVN提交和更新代码冲突?
查看>>
rem布局注意问题和meta标签
查看>>
[React Testing] Children with Shallow Rendering
查看>>
ubuntu的LAMP环境搭建
查看>>
关于call/apply与bind的一点误解
查看>>
sqlserver数据库迁移至oracle数据库(下)
查看>>
python基础
查看>>
Reactor模式的.net版本简单实现--DEMO
查看>>
poj 3088 斯特林数
查看>>
Android Weak Handler:可以避免内存泄漏的Handler库
查看>>
项目总结
查看>>
Python进行以太坊开发安装web3.py的报错处理
查看>>
HDU 3473 Minimum Sum(划分树)
查看>>
JAVA高并发多线程必须懂的50个问题
查看>>
ZJU校赛划水记
查看>>
读《构建之法》8-10章
查看>>
转载:在ASP.net 3.5中 用JSON序列化对象(两种方法)
查看>>