How DRM works in RAC cluster

转载 2013年12月24日 23:00:13

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

think in java笔记:How a garbage collector works

think in java笔记:How a garbage collector works If you come from a programming language where alloca...

How a Kalman filter works, in pictures (译文)

在知乎上看到这篇文章,插图风格不错,决定看看,顺手翻译,欢迎指正~

How HashMap works in Java

How HashMap works in Java? How HashMap works in Java or sometime how get method work in HashMap i...

How TCP backlog works in Linux

January 1, 2014 (updated March 14, 2015) When an application puts a socket into LISTEN state usin...

What is Index and how it works in SQL Server?

What is Index and how it works in SQL Server?

Garbage Collection in .NET - How it really works

Garbage collection is a process of releasing the memory used by the objects, which are no longer ref...

How Scaling Really Works in Apache HBase

At first glance, the Apache HBase architecture appears to follow a master/slave model where the mast...

Java中的垃圾回收是如何工作的?(How Garbage Collection works in Java)

注:此文是在blogspot(被墙)上看到的,能翻墙的同学们自己去看(点此此处), 顺道可以看看一些其他的资料;不能翻墙的同学在此将就将就。 我读过许多关于Java垃圾回收的文章,其中...

How a garbage collector works----From Thinking in Java the 4th edition

If you come from a programming language whereallocating objects on the heap is expensive, you may na...

Enterprise Manager Database Control only starts on one node of my RAC cluster. How do I start it on another node? [ID 335571.1]

Enterprise Manager Database Control only starts on one node of my RAC cluster. How do I start it on ...
  • aicon
  • aicon
  • 2011年01月07日 20:59
  • 492
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:How DRM works in RAC cluster
举报原因:
原因补充:

(最多只允许输入30个字)