Re: Block level contention
Posted by ErmanArslansOracleBlog on
URL: http://erman-arslan-s-oracle-forum.114.s1.nabble.com/Block-level-contention-tp7249p7250.html
NO! user B doesn't have to wait for user A.
The block header of every segment block contains an interested transaction list (ITL). The database uses the ITL to determine whether a transaction was uncommitted when the database began modifying the block.
Entries in the ITL describe which transactions have rows locked.. "ROWS"
In your case;
Both User A and B both are interested in updating the same block, but different rows..
In buffer cache, they will get the latch for checking the ITL entires in the same block..
So, When User B 's shadow process will read the ITL entries of the buffer, it will see that there is a transactions (user A) updating the same block (not committed yet), but it is actually updating a different row.. Thus, User B will proceed and update the block..
My answer for your second question -> INo, they will use the same block.. It will be a buffer cache hit.