How DRM works in RAC cluster

10g Real Application Clusters introduced a concept of resource remastering via Dynamic Resource Mastering (DRM). With DRM a resource can be re-mastered on another node in the cluster if it is found that the cache resource is accessed more frequently from that node.

With object remastering feature, if an object is accessed by an instance aggressively, then that instance will become the master of the object reducing gc remote grants improving performance of the application. In the prior sentence, I used the word “accessed”, but it is a loose term, and the correct term is if the instance is requesting much BL locks on an object, then that object can be remastered. In an ideal world, even if the application is not partitioned, remastering of the objects that were accessed aggressively from one instance will acquire cheaper local instance affinity locks and effective RAC Tax will be minimal.

In 10G R1 this was file based whereas the 10G R2 it is object based.
In 10G R1 due to a few bugs many related to high CPU usage during the DRM freeze window most customers disabled DRM by setting the following parameters

Parameters, views and internals
parameter _gc_affinity_time=0 (process LCK0 process maintains these object affinity statistics)
parameter _gc_undo_affinity=FALSE
View X$object_affinity_statistics maintains the statistics about objects and OPENs on those objects. _gc_affinity_time defines the frequency in minutes to check if remastering is needed. _gc_affinity_limit defines the number of times a node must access an object for it to be a DRM candidate it's meaning that _gc_affinity_time controls how often the queue is checked to see if the remastering must be triggered or not with a default value of 10 minutes. _gc_affinity_minimum defines the minimum number of times an object is accessed per minute before affinity kicks in The performance problems may manifest themselves in terms of a DRM related wait event like 'gcs drm freeze in enter server mode' In 10G R2 this feature appears to be more stable. The remaster_cnt appears to be 0 for all objects. I have got Oracle to log bug 5649377 on this issue. SQL> select distinct remaster_cnt from V$GCSPFMASTER_INFO ; REMASTER_CNT ------------ 0 DRM statistics are available in X$KJDRMAFNSTATS SQL> select * from X$KJDRMAFNSTATS 2 / ADDR INDX INST_ID DRMS AVG_DRM_TIME OBJECTS_PER_DRM QUISCE_T FRZ_T CLEANUP_T REPLAY_T FIXWRITE_T SYNC_T -------- ---------- ---------- ---------- ------------ --------------- ---------- ---------- ---------- ---------- ---------- ---------- RES_CLEANED REPLAY_S REPLAY_R MY_OBJECTS ----------- ---------- ---------- ---------- 200089CC 0 1 32 214 1 3 14 0 0 0 99 0 2441 6952 30 The column MY_OBJECTS denotes the number of objects mastered on that node. This should match with the following SQL> select count(*) from V\$GCSPFMASTER_INFO where current_master=0 2 / COUNT(*) ---------- 30

from http://blog.abigold.fr/joomla/index.php?option=com_content&view=article&id=335:rac-10g-102-oracle-rac-gcaffinitytime-gcundoaffinity&catid=118:rac-oracle&Itemid=66

Oracle 11.2.0.4.0 RAC下DRM导致单节点宕机

2017-08-15 16:38:55

oracle RAC DRM原理解析

2015-01-28 14:32:05

Oracle11g RAC下真的要关闭DRM

2017-04-06 16:07:52

How Tomcat Works -- 目录

2015-12-08 00:38:43

探索《How Tomcat Works》心得（一）

2016-05-02 11:01:01

2014年10月18日 4.2MB 下载

How Tomcat Works中文版-带完整目录

2017年11月15日 1.99MB 下载

how linux works(精通linux)第二版中英文

2016年10月18日 8.09MB 下载

How Tomcat Works 中文版

2017年09月28日 1.96MB 下载

读书：How Tomcat Works 实例运行

2018-01-28 13:01:25