打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
春暖花开 | 理解oracle rac cache fusion (图解)re

Cache Fusion
提供传输的扩展性,在实例间传输block 的image,跟踪资源的当前位置和状态,每个实例的sga的目录结构中保存有资源信息

Cache Fusion模型

Global Resoure Directory由Global Cache Service 来管理
记录资源的模式、资源的角色、block在实例中的状态、在各个活动的节点发布资源的master、在必要的时候重新发布master(例如实例的启动和关闭)

Global Cache Service
1、资源模式,三种
null (默认的)
share(s) (查询)
exclusive(x) (可以改变block的内容,其它的实例就是null mode)
2、资源角色,两种
local:
第一次请求资源的初试模式;只有一个实例可以有这个block的dirty copy
global:
当一个Block在多个实例中变dirty时,Local就变成了Global Block只能由Global Cache Service写到磁盘中

Cache Fusion Block的传输

例如:有ABCD四个节点,Global Cache Service: GCS

1. Read with no transfer
如果C节点需要向共享磁盘文件上读一个Block,那么它向Global Cache Service发送请求,这个时候请求被定向到节点D,D是这个Block的Master(每个资源都有Master)。GCS把资源授权为ShareMode和LocalRole,在目录中记录下了他的状态(目录在节点D),然后通知C,C把这个资源从Null改成Share。C开始I/O,现在C有了这个Block以Share模式从磁盘文件读取。
2. Read to write transfer
B也要这个Block,并且不仅是读,而且还要改变它的内容。B向D(这个Block的Mater)的GCS发出请求,GCS向C发出请求,要求C把这个Block给B,C把Block给B,B收到后,告诉GCS,现在B可以修改这个block了。
3. Write to write transfer
A向D节点的GCS发出请求,GCS告诉B节点放弃他的Exclusive锁,并且把当前的Image传到A,如果这个请求没有完成,就会放到GCS的队列里。B把这个Block传到A,这个时候,要写Log,强制LgFlush,把模式变成Null。发送到A,并且告诉它这个Exclusive的资源可以用了。A收到了这个Block的Image,会通知GCS并且告诉它Block的Status是Exclusive。这个时候,B不能对这个Block做操作,虽然在它的BufferCache中,它还有这个Block的Copy。
4. Write to read transfer
C要读这个Block,先向D(Master)发出请求,GCS要求A把它传输到C,A接受到请求完成它的工作,这可能会在A写Log和LogFlush在发送这个Block之前。A会把它的Exclusive锁降低到Share模式。C把从A收到的Block的SCN取出来,建设成一个资源Assumption信息为GCS更新Global Resource Directory。

通过设置参数gc_files_to_locks,可以关闭Cache Fusion。这样就象8i的OPS一样,别的节点要访问数据快,必须等待别的节点提交,写回数据文件中。
Cache Resoure的Rematering
Cache Resoure在一个节点上不再需要继续Master,DynamicRemastering能把它移动到不同的节点。GCS和GES使用动态的Remastering:在一个新实例加入到这个ActiveSet之后重新分发资源,在一个实例离开这个Active Set之后重新分发资源。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Oracle rac架构和原理
Oracle RAC学习笔记:基本概念及入门
RAC Cache Fusion
关于oracle的RAC
Oracle RAC
eucalyptus的开源实现
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服