Oracle RAC PCM Cache Fusion分析.pdf

Oracle RAC PCM Cache Fusion分析.pdf

ID:34310213

大小:731.02 KB

页数:33页

时间:2019-03-04

Oracle RAC PCM Cache Fusion分析.pdf_第1页
Oracle RAC PCM Cache Fusion分析.pdf_第2页
Oracle RAC PCM Cache Fusion分析.pdf_第3页
Oracle RAC PCM Cache Fusion分析.pdf_第4页
Oracle RAC PCM Cache Fusion分析.pdf_第5页
资源描述:

《Oracle RAC PCM Cache Fusion分析.pdf》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、OracleRACPCMCache-Fusion分析作者:何登成微博:@何_登成Outline•RAC通讯算法•RAC资源分配算法•CacheFusion–名称简介–R/R–W/R–W/W•CacheFusion恢复RAC通讯算法•注意点(我的理解,方便以后大家阅读)–消息编码•AST:锁持有者发送给锁请求者的消息,用于唤醒等待中的请求者•BAST:锁请求者(或者是master节点)发送给锁持有者的消息,表名当前请求锁被阻塞–主要类型•同步消息:锁请求,等•异步消息:获取锁之后的响应,等–操作实现:•队列(queue):所有

2、的异步消息都会进入队列,等待调度发送•非队列:同步消息一般而言不会进入队列,除非遭遇流控–消息流控•令牌(Ticket):每个节点都会持有一定数量的令牌。•使用:锁请求消息发送时,需要消耗令牌数;当请求消息的响应从master节点返回,则增加令牌数。•流控:如果需要令牌的消息发送不能获得令牌,则需要进入队列,等待其他节点返回令牌之后,才能继续发送消息。RAC资源分配算法•结构图RAC资源分配算法•概念–物理节点(Physicalnode)•物理节点,就是实际的rac中的数据库instance–逻辑节点(Logicalnode

3、)•物理节点在rac内部的索引方式。逻辑节点是一个hash链表结构,链表中的每一项,保存的是物理节点号。Hash_node_kjga–桶(Buckets)•完成资源(PCM/Non-PCM)到逻辑节点的映射。桶也是hash链表结构,链表中的每一项,保存的是逻辑节点号。Res_hashed_val_kjga:non-pcm;pcm_hv_kjga:pcm–资源(Resource)•PCM(parallelcachemanagement):所有的datablock,redoblock•Non-PCM:PCM资源之外的所有资源,包

4、括表,数据文件,SCN,事务等需要在全局同步RAC资源分配算法•概念(续)–Master节点•所有的资源(PCM/Non-PCM),都是被一个指定的物理节点管理。•Master节点,就相当于一个调度中心,当RAC中的一个节点需要访问某一资源时,首先需要方法此资源的master节点,判断资源是否可以获得,是否正在被其他节点独占访问而需要等待,等等。•Non-PCM资源,在所有RAC节点中平均分配•PCM资源,不是在所有节点中平均分配。简单来说,节点的databuffer越大,其所管理的PCM资源越多•接下来,将详细介绍资源是如

5、何在rac中调度的RAC资源分配算法•物理节点到逻辑节点的映射–左侧为hash_node_kjga,其中的每一项,保存的是物理节点号–hash_node_kjga[0]中,必须指向一个物理节点•逻辑节点链表存在的意义–屏蔽instance加入/离开的影响。逻辑节点链表hash_node_kjga的地址与大小是不变的–方便节点管理,如果需要更改master节点,只需要将hash_node_kjga中对应的值改掉即可,不需要其他操作–逻辑节点,其功能与我们经常使用的vip类似。instance的变化对于rac透明RAC资源分配算

6、法•桶到逻辑节点的映射(右图)–两个桶(分别对应与PCM/Non-PCM)–桶中保存的是对应的逻辑节点的下标–桶的大小为128(两个都是128)•资源到桶的映射(下图)–资源(PCM/Non-PCM),通过hash算法,计算出128中的某一个数字,映射到对应桶的位置(pcm资源pcm_hv_kjga)RAC资源分配算法•资源->桶->逻辑节点,意义所在–为什么不是直接由资源映射到逻辑节点,而要多此一举,在其中添加一层桶?–优势一:固定hash算法如果直接由资源映射到逻辑节点,那么随着节点的加入/离开,需要采用新的hash算

7、法,而这个开销是相当大的,所有的资源重计算–优势二:平衡资源分布hash算法很难做到平均分布,为了达到平均分布,采用128个桶来达到更好的平衡–优势三:更方便的资源重分配在节点加入/离开的过程中,资源可以快速重分配。简单来说,如果节点加入,只需要将pcm_hv_kjga中某几项对应的逻辑节点号更改为新的即可。详细算法,将在后面给出。RAC资源分配算法•资源重分配(ResourceRemapping,2节点)•注意:桶中的编号–Round-robbin方式RAC资源分配算法•资源重分配(多节点,节点加入)–1.计算每个节点需要

8、管理的buckets数量(pcm,需要加上权重)–2.将目前管理数量大于平均数量的节点,取出其中多余的buckts,设置为未分配–3.遍历res_hased_val_kjga,pcm_hv_kjga中的每一项,如果当前项未分配,则将分配给最新加入的节点–4.刷新各节点的配置文件•资源重分配

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。