{"id":103,"date":"2009-05-11T10:26:51","date_gmt":"2009-05-11T15:26:51","guid":{"rendered":"http:\/\/appcrawler.com\/wordpress\/?p=103"},"modified":"2011-07-06T10:18:28","modified_gmt":"2011-07-06T15:18:28","slug":"gc-buffer-busy-on-the-same-instance","status":"publish","type":"post","link":"http:\/\/appcrawler.com\/wordpress\/2009\/05\/11\/gc-buffer-busy-on-the-same-instance\/","title":{"rendered":"gc buffer busy on the same instance??"},"content":{"rendered":"<p>Recently, we have been running a large data load against a three server RAC.  This load is running against a single server in the cluster.  We found a particular SQL statement used in a PLSQL procedure did a large amount of I\/O.  While we knew we needed to fix it, we found it odd that the most of the sessions waiting on &#8216;gc buffer busy&#8217; were waiting on a file and block for which another session had already posted a &#8216;db file sequential read&#8217; wait event at the same time&#8230;in the same instance!<br \/>\nWhy would the session waiting on &#8216;gc buffer busy&#8217; not post &#8216;buffer busy waits&#8217; or &#8216;read by other session&#8217;?  I posted this question on CDOS, and Jonathan Lewis was kind enough to <a>post a response.<\/a><\/p>\n<p>Essentially, his thought was that a session on another instance had the block, for whatever reason, the session waiting on &#8216;db file sequential  read&#8217; in the first instance had originally been waiting on &#8216;gc buffer busy&#8217;.  For whatever reason, the block was passed by disk (db file sequential read&#8217;) rather than interconnect (&#8216;gc buffer busy&#8217;).  This proved to be true on the surface, as the session waiting on &#8216;db file sequential read&#8217; did have &#8216;gc buffer busy&#8217; wait for the same file and block in gv$session_wait_history just prior to the &#8216;db file sequential read&#8217;.<\/p>\n<table style=\"border-collapse: collapse; height: 68px;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"837\">\n<col style=\"width: 43pt;\" width=\"57\" text-align:\"left\"><\/col>\n<col style=\"width: 26pt;\" width=\"35\"><\/col>\n<col style=\"width: 31pt;\" width=\"41\"><\/col>\n<col style=\"width: 101pt;\" width=\"235\"><\/col>\n<col style=\"width: 42pt;\" width=\"56\"><\/col>\n<col style=\"width: 21pt;\" width=\"28\"><\/col>\n<col style=\"width: 42pt;\" span=\"2\" width=\"56\"><\/col>\n<tbody>\n<tr style=\"height: 12.75pt;\" height=\"17\">\n<td class=\"xl68\" style=\"height: 12.75pt; width: 43pt;\" width=\"57\" height=\"17\">INST_ID<\/td>\n<td class=\"xl68\" style=\"border-left: medium none; width: 26pt;\" width=\"35\">SID<\/td>\n<td class=\"xl68\" style=\"border-left: medium none; width: 31pt;\" width=\"41\">SEQ#<\/td>\n<td class=\"xl68\" style=\"border-left: medium none; width: 101pt;\" width=\"135\">EVENT<\/td>\n<td class=\"xl68\" style=\"border-left: medium none; width: 42pt;\" width=\"56\">P1TEXT<\/td>\n<td class=\"xl68\" style=\"border-left: medium none; width: 21pt;\" width=\"28\">P1<\/td>\n<td class=\"xl68\" style=\"border-left: medium none; width: 42pt;\" width=\"56\">P2TEXT<\/td>\n<td class=\"xl68\" style=\"border-left: medium none; width: 42pt;\" width=\"56\">P2<\/td>\n<\/tr>\n<tr style=\"height: 12.75pt;\" height=\"17\">\n<td class=\"xl69\" style=\"border-top: medium none; height: 12.75pt;\" height=\"17\" align=\"left\">1<\/td>\n<td class=\"xl69\" style=\"border-top: medium none; border-left: medium none;\" align=\"left\">1341<\/td>\n<td class=\"xl69\" style=\"border-top: medium none; border-left: medium none;\" align=\"left\">5<\/td>\n<td class=\"xl69\" style=\"border-top: medium none; border-left: medium none;\">gc buffer busy<\/td>\n<td class=\"xl69\" style=\"border-top: medium none; border-left: medium none;\">file#<\/td>\n<td class=\"xl69\" style=\"border-top: medium none; border-left: medium none;\" align=\"left\">185<\/td>\n<td class=\"xl69\" style=\"border-top: medium none; border-left: medium none;\">block#<\/td>\n<td class=\"xl69\" style=\"border-top: medium none; border-left: medium none;\" align=\"left\">1108664<\/td>\n<\/tr>\n<tr style=\"height: 12.75pt;\" height=\"17\">\n<td class=\"xl69\" style=\"border-top: medium none; height: 12.75pt;\" height=\"17\" align=\"left\">1<\/td>\n<td class=\"xl69\" style=\"border-top: medium none; border-left: medium none;\" align=\"left\">1484<\/td>\n<td class=\"xl69\" style=\"border-top: medium none; border-left: medium none;\" align=\"left\">5<\/td>\n<td class=\"xl69\" style=\"border-top: medium none; border-left: medium none;\">read by other session<\/td>\n<td class=\"xl69\" style=\"border-top: medium none; border-left: medium none;\">file#<\/td>\n<td class=\"xl69\" style=\"border-top: medium none; border-left: medium none;\" align=\"left\">185<\/td>\n<td class=\"xl69\" style=\"border-top: medium none; border-left: medium none;\">block#<\/td>\n<td class=\"xl69\" style=\"border-top: medium none; border-left: medium none;\" align=\"left\">1108664<\/td>\n<\/tr>\n<tr style=\"height: 12.75pt;\" height=\"17\">\n<td class=\"xl69\" style=\"border-top: medium none; height: 12.75pt;\" height=\"17\" align=\"left\">1<\/td>\n<td class=\"xl69\" style=\"border-top: medium none; border-left: medium none;\" align=\"left\">1608<\/td>\n<td class=\"xl69\" style=\"border-top: medium none; border-left: medium none;\" align=\"left\">5<\/td>\n<td class=\"xl69\" style=\"border-top: medium none; border-left: medium none;\">db file sequential   read<\/td>\n<td class=\"xl69\" style=\"border-top: medium none; border-left: medium none;\">file#<\/td>\n<td class=\"xl69\" style=\"border-top: medium none; border-left: medium none;\" align=\"left\">185<\/td>\n<td class=\"xl69\" style=\"border-top: medium none; border-left: medium none;\">block#<\/td>\n<td class=\"xl69\" style=\"border-top: medium none; border-left: medium none;\" align=\"left\">1108664<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>However, after I dug further into that view, I found the session that evidently *originally* had the file and block was waiting on &#8216;read by other session&#8230;also on the the first instance!!  I am more lost now than ever \ud83d\ude41<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently, we have been running a large data load against a three server RAC. This load is running against a single server in the cluster. We found a particular SQL statement used in a PLSQL procedure did a large amount&hellip;<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"http:\/\/appcrawler.com\/wordpress\/2009\/05\/11\/gc-buffer-busy-on-the-same-instance\/\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"footnotes":""},"categories":[19,22],"tags":[],"_links":{"self":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts\/103"}],"collection":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/comments?post=103"}],"version-history":[{"count":25,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts\/103\/revisions"}],"predecessor-version":[{"id":123,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts\/103\/revisions\/123"}],"wp:attachment":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/media?parent=103"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/categories?post=103"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/tags?post=103"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}