缓存融合技术介绍

缓存融合技术介绍

ID:40646948

大小:233.76 KB

页数:6页

时间:2019-08-05

缓存融合技术介绍_第1页
缓存融合技术介绍_第2页
缓存融合技术介绍_第3页
缓存融合技术介绍_第4页
缓存融合技术介绍_第5页
资源描述:

《缓存融合技术介绍》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、缓存融合技术介绍CACHEFUSION原理前面已经介绍了RAC的后台进程,为了更深入的了解这些后台进程的工作原理,先了解一下RAC中多节点对共享数据文件访问的管理是如何进行的。要了解RAC工作原理的中心,需要知道CacheFusion这个重要的概念,要发挥CacheFusion的作用,要有一个前提条件,那就是互联网络的速度要比访问磁盘的速度要快。否则,没有引入CACHEFUSION的意义。而事实上,现在100MB的互联网都很常见。什么是CACHEFUSION?CacheFusion就是通过互联网络(

2、高速的Privateinterconnect)在集群内各节点的SGA之间进行块传递,这是RAC最核心的工作机制,他把所有实例的SGA虚拟成一个大的SGA区,每当不同的实例请求相同的数据块时,这个数据块就通过Privateinterconnect在实例间进行传递。以避免首先将块推送到磁盘,然后再重新读入其他实例的缓存中这样一种低效的实现方式(OPS的实现)。当一个块被读入RAC环境中某个实例的缓存时,该块会被赋予一个锁资源(与行级锁不同),以确保其他实例知道该块正在被使用。之后,如果另一个实例请求该块

3、的一个副本,而该块已经处于前一个实例的缓存内,那么该块会通过互联网络直接被传递到另一个实例的SGA。如果内存中的块已经被改变,但改变尚未提交,那么将会传递一个CR副本。这就意味着只要可能,数据块无需写回磁盘即可在各实例的缓存之间移动,从而避免了同步多实例的缓存所花费的额外I/O。很明显,不同的实例缓存的数据可以是不同的,也就是在一个实例要访问特定块之前,而它又从未访问过这个块,那么它要么从其他实例cachefusion过来,或者从磁盘中读入。GCS(GlobalCacheService,全局内存服务

4、)和GES(GlobalEnquenceService,全局队列服务)进程管理使用集群节点之间的数据块同步互联。这里还是有一些问题需要思考的:·在所有实例都未读取该块,而第一个实例读取时,是怎么加的锁,加的什么锁?如果此时有另一个实例也要读这个块,几乎是同时的,那么Oracle如何来仲裁,如何让其中一个读取,而另一个再从前者的缓存中通过cache来得到?·如果一个块已经被其他实例读入,那么本实例如何判断它的存在?·如果某个实例改变了这个数据块,是否会将改变传递到其他实例,或者说其他实例是否会知道并重

5、新更新状态?·如果一个实例要swapout某个块,而同时其他实例也有这个块的缓存,修改过的和未修改过的,本实例修改的和其他实例修改的,如何操作?truncate一张表,drop一张表...和单实例有何不同?·应该如何设计应用,以使RAC真正发挥作用,而不是引入竞争,导致系统被削弱?·RAC下锁的实现。锁是在各实例的SGA中保留的资源,通常被用于控制对数据库块的访问。每个实例通常会保留或控制一定数量与块范围相关的锁。当一个实例请求一个块时,该块必须获得一个锁,并且锁必须来自当前控制这些锁的实例。也就是

6、锁被分布在不同的实例上。而要获得特定的锁要从不同的实例上去获得。但是从这个过程来看这些锁不是固定在某个实例上的,而是根据锁的请求频率会被调整到使用最频繁的实例上,从而提高效率。要实现这些资源的分配和重分配、控制,这是很耗用资源的。这也决定了RAC的应用设计要求比较高。假设某个实例崩溃或者某个实例加入,那么这里要有一个比较长的再分配资源和处理过程。在都正常运行的情况下会重新分配,以更加有效的使用资源;在实例推出或加入时也会重新分配。在alert文件中可以看到这些信息。而CacheFusion及其他资源

7、的分配控制,要求有一个快速的互联网络,所以要关注与互联网络上消息相关的度量,以测试互联网络的通信量和相应时间。对于前面的一些问题,可以结合另外的概念来学习,它们是全局缓存服务和全局队列服务。全局缓存服务(GCS):要和CacheFusion结合在一起来理解。全局缓存要涉及到数据块。全局缓存服务负责维护该全局缓冲存储区内的缓存一致性,确保一个实例在任何时刻想修改一个数据块时,都可获得一个全局锁资源,从而避免另一个实例同时修改该块的可能性。进行修改的实例将拥有块的当前版本(包括已提交的和未提交的事物)以

8、及块的前象(postimage)。如果另一个实例也请求该块,那么全局缓存服务要负责跟踪拥有该块的实例、拥有块的版本是什么,以及块处于何种模式。LMS进程是全局缓存服务的关键组成部分。猜想:Oracle目前的cachefusion是在其他实例访问时会将块传输过去再构建一个块在那个实例的SGA中,这个主要的原因可能是interconnect之间的访问还是从本地内存中访问更快,从而让Oracle再次访问时可以从本地内存快速获取。但是这也有麻烦的地方,因为在多个节点中会有数据

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

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

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