19.06.2013 Views

DB2 UDB for z/OS Version 8 Performance Topics - IBM Redbooks

DB2 UDB for z/OS Version 8 Performance Topics - IBM Redbooks

DB2 UDB for z/OS Version 8 Performance Topics - IBM Redbooks

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

There is also no need to use RELEASE(DEALLOCATE) if you currently use this BIND<br />

parameter to reduce XES contention.<br />

8.3 Change to IMMEDWRITE default BIND option<br />

8.3.1 Per<strong>for</strong>mance<br />

Prior to V8, any remaining changed pages in a data sharing environment are written to the<br />

group buffer pool during phase 2 of commit, unless otherwise specified by the IMMEDWRITE<br />

BIND parameter. This enhancement changes the default processing to write changed pages<br />

during commit phase 1. <strong>DB2</strong> no longer writes changed pages to the coupling facility during<br />

phase 2 of commit processing.<br />

An implication of this change to commit processing is that <strong>DB2</strong> V8 now charges all writes of<br />

changed pages to the allied TCB, not the MSTR address space.<br />

Consider the situation where one transaction updates <strong>DB2</strong> data using INSERT, UPDATE, or<br />

DELETE, and then, be<strong>for</strong>e completing phase 2 of commit, spawns a second transaction that<br />

is executed on another <strong>DB2</strong> member and is dependent on the updates that were made by the<br />

first transaction. This type of relationship is referred to as “ordered dependency” between<br />

transactions. In this case, the second transaction may not see the updates made by the first<br />

transaction.<br />

<strong>DB2</strong> V5 introduced a new BIND parameter to overcome this problem. IMMEDWRITE(YES)<br />

allows the user to specify that <strong>DB2</strong> should immediately write updated GBP dependent buffers<br />

to the coupling facility instead of waiting until commit or rollback. This option solves the<br />

application issue at the expense of per<strong>for</strong>mance since it <strong>for</strong>ces each individual changed page<br />

immediately to the CF, ahead of commit, with each immediate write implying also a write to<br />

the <strong>DB2</strong> log, <strong>for</strong> as many changes are made to same page.<br />

<strong>DB2</strong> V6 extended this functionality. IMMEDWRITE(PH1) allows the user to specify that <strong>for</strong> a<br />

given plan or package updated group buffer pool dependent pages should be written to the<br />

coupling facility at or be<strong>for</strong>e phase 1 of commit. This option does not cause a per<strong>for</strong>mance<br />

penalty. If the transaction subsequently rolls back, the pages will be updated again during the<br />

rollback process and will be written again to the coupling facility at the end of abort.<br />

In prior versions of <strong>DB2</strong>, changed pages in a data sharing environment are normally written<br />

during phase 2 of the commit process, unless otherwise specified by the IMMEDWRITE BIND<br />

parameter, or IMMEDWRI DSNZPARM parameter.<br />

<strong>DB2</strong> V8 changes the default processing to write changed pages during phase 1 of commit<br />

processing. The options you can specify <strong>for</strong> the IMMEDWRITE BIND parameter remain<br />

unchanged. However, whether you specify “NO”' or “PH1”, the behavior will be identical,<br />

changed pages are written during phase 1 of commit processing.<br />

In <strong>DB2</strong> V8, changed pages are only written at or be<strong>for</strong>e phase 1, never at phase 2 of the<br />

commit processing.<br />

The book <strong>DB2</strong> <strong>for</strong> z/<strong>OS</strong> and <strong>OS</strong>/390 <strong>Version</strong> 7 Per<strong>for</strong>mance <strong>Topics</strong>, SG24-6129, documents a<br />

study of the impact of writing pages to the group buffer pool during phase 2 of commit,<br />

IMMEDWRITE(NO), compared to writing pages to the group buffer pool during phase 1 of<br />

commit, IMMEDWRITE(PH1). The testing revealed the Internal Throughput Rates are very<br />

close to each other; meaning writing pages to the group buffer pool during phase 1 of commit<br />

has little or no per<strong>for</strong>mance impact.<br />

332 <strong>DB2</strong> <strong>UDB</strong> <strong>for</strong> z/<strong>OS</strong> <strong>Version</strong> 8 Per<strong>for</strong>mance <strong>Topics</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!