I am curious about the steps that DB2 performs when reading the "clean" page during an update that has not been committed or that the page cleaner has not written the page back to disk.
Let's say you updated a row but have not committed the transaction. If you want to read the same row without UR (let me see the clean page) does DB2 perform another i/o from disk into the bufferpool - at which point there would be 2 versions of the page in the bufferpool (the before page and after page) or does db2 read the transaction log (although there may not be a transaction since there was no COMMIT) or is there something else DB2 does to save the i/o and read the before version of the page that is in the bufferpool?
Now let's say same example as above but in this scenario you've committed the transaction BUT the page hasn't been written to disk. Again you want to read the clean page (the one on disk, not the one that has yet to be written to disk) does DB2 perform an i/o - force the page cleaner to flush the page back to disk and move the "new" page back to the bufferpool or again does DB2 somehow keep track of the before and after page via log or some other way?
thanks in advance
-j
Let's say you updated a row but have not committed the transaction. If you want to read the same row without UR (let me see the clean page) does DB2 perform another i/o from disk into the bufferpool - at which point there would be 2 versions of the page in the bufferpool (the before page and after page) or does db2 read the transaction log (although there may not be a transaction since there was no COMMIT) or is there something else DB2 does to save the i/o and read the before version of the page that is in the bufferpool?
Now let's say same example as above but in this scenario you've committed the transaction BUT the page hasn't been written to disk. Again you want to read the clean page (the one on disk, not the one that has yet to be written to disk) does DB2 perform an i/o - force the page cleaner to flush the page back to disk and move the "new" page back to the bufferpool or again does DB2 somehow keep track of the before and after page via log or some other way?
thanks in advance
-j