【正确答案】Cache Fusion即缓存融合,它能实现RAC在各个节点之间同步SGA中的缓存信息,从而达到提高访问速度的效果,也保证了数据的一致性。要发挥Cache Fusion的作用,要有一个前提条件,那就是网络的速度要比访问磁盘的速度要快。否则,没有引入Cache Fusion的意义。
Cache Fusion就是通过集群私网在各节点的SGA之间进行块传递,以避免首先将块推送到磁盘,然后再重新读入其他实例的缓存中这样一种低效的实现方式。当一个块被读入RAC环境中某个实例的缓存时,该块会被赋予一个锁资源(与行级锁不同),以确保其他实例知道该块正在被使用。之后,如果另一个实例请求该块的一个副本,而该块已经处于前一个实例的缓存内,那么该块会通过私网直接被传递到另一个实例的SGA。如果内存中的块已经被改变,但改变尚未提交,那么将会传递一个CR(Consistent Read)副本。这就意味着只要可能,数据块无需写回磁盘即可在各实例的缓存之间移动,从而避免了同步多实例的缓存所花费的额外I/O。很明显,不同的实例缓存的数据可以是不同的,也就是在一个实例要访问特定块之前,而它又从未访问过这个块,那么它要么从其他实例Cache Fusion过来,要么从磁盘中读入。
【答案解析】