即在Exadata一体机的RAC架构中,通过Undo Block RDMA-Read新特性,为保持数据一致性,
RAC一个实例将以新的RDMA协议和算法直接从另一个实例的缓冲区(Buffer Cache)中读取UNDO
数据块,而不是基于传统的Cache Fusion技术,即通过LMS进程去读取UNDO数据块。据官方测试
结果,读取效率从传统的50微秒降到了现在的10微秒。通常而言,很多应用的RAC节点间数据流
量中UNDO信息占了很大一部份,例如据统计EBS应用的15%私网流量是UNDO数据块。因此,Undo
Block RDMA-Read特性将大大提升RAC环境中UNDO信息的传输效率,降低LMS进程负载,进而整体
提升RAC环境运行质量。
解读Undo Block RDMA-Read
首先,Undo Block RDMA-Read新特性只在Exadata一体机推出,可见Oracle公司的一个重大
策略就是强化自身一体机的竞争能力。其次,任何优化技术无外乎就是或开源或节流,Undo Block
RDMA-Read显然属于节流策略,即直接从Buffer Cache中读取UNDO数据块,减少了LMS进程传输
UNDO数据块的更多环节。第三,我想也是最重要的,该新特性毕竟只是针对UNDO数据块的传输优
化,而在RAC私网流量中,我想绝大部分应用最主要传输的还是应用数据本身。因此,即便UNDO
优化了5倍以上,对RAC私网流量和节点间数据访问冲突的全局性影响还是有限的。应用部署的总
体优化对降低RAC私网流量和节点间数据访问冲突依然是更主要的。
总之,Oracle已经在自己的系统层面竭尽所能了,但IT系统是个整体,IT系统优化效果依然
是架构设计和应用开发所占的比重更大。
2. 18c的Commit Cache概述和解读
18c的Commit Cache概述
与Undo Block RDMA-Read新特性一样,18c的Commit Cache也是针对Exadata一体机的,而
且也是针对UNDO信息传输优化的。在传统的RAC架构中,UNDO信息同步是直接传输UNDO数据块,
例如8K。而且在一个会话中,可能需要针对多个远程事务都去检查提交信息,导致串行传输多个
UNDO数据块。另外,访问远程UNDO头信息还需要等待日志刷新到磁盘之后才能进行。这些都导致
了UNDO信息同步的低效率。
18c的新特性Commit Cache则有效解决了上述多种问题,Commit Cache在每个实例中部署和
维护一个内存表,并记录了每个事务的提交时间。当某个会话需要检查远程事务是否提交时,
LMS进程直接到这个内存表中去读取提交时间。通过Commit Cache技术,不仅不需要读取整个UNDO
数据块,而且只需一次性读取远程提交时间,而不需要多次传输UNDO数据块。再者,Commit Cache
技术不再需要将日志信息写到硬盘再读取,而是直接读取远程节点的内存中的提交信息,访问效
率显著提升。最后,当本地节点读取到其它节点的提交信息之后,也将存储在本地内存表中,这
评论