• Sergey Vojtovich's avatar
    Applying InnoDB snapshot, fixes BUG#49047. · b419c752
    Sergey Vojtovich authored
    Detailed revision comments:
    
    r6534 | sunny | 2010-01-29 23:42:49 +0200 (Fri, 29 Jan 2010) | 15 lines
    branches/zip: Two changes to fix the problem:
    
    1. First scan the joining transaction's locks and check if no other
    transaction is waiting for a lock held by the joining transaction.
    If no other transaction is waiting then  no deadlock an occur and
    we avoid doing an exhaustive search.
    
    2. Change the direction of the lock traversal from backward to forward.
    Previously we traversed backward from the lock that has to wait, the function
    to that fetched the previous node was very inefficient resulting in O(n^2)
    access to the rec lock list.
    
    Fix Bug #49047 InnoDB deadlock detection is CPU intensive with many locks on a single row.
    
    rb://218
    b419c752
trx0trx.h 28.6 KB