• unknown's avatar
    ndb - bug#19293 and family · be0ab479
    unknown authored
      introduce acc per row logical mutex to fix difficult error handling cases
      
    
    
    storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp:
      1) Fix per row mutex so that only 1 op at a time is running on a row
      2) Change TUP_ALLOC/DEALLOC semantic, so that a new record will be allocated if LQ = { T1(DEL) - T2(INS) }
      3) Rewrite lock queus to be O(1) in all cases but a few abort cases where we scan parallell queue
      4) Impl. a validate_lock_queue/dump_lock_queue test framework
    storage/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp:
      1) Fix per row mutex so that only 1 op at a time is running on a row
      2) Change TUP_ALLOC/DEALLOC semantic, so that a new record will be allocated if LQ = { T1(DEL) - T2(INS) }
      3) Rewrite lock queus to be O(1) in all cases but a few abort cases where we scan parallell queue
      4) Impl. a validate_lock_queue/dump_lock_queue test framework
    storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp:
      1) Fix per row mutex so that only 1 op at a time is running on a row
      2) Change TUP_ALLOC/DEALLOC semantic, so that a new record will be allocated if LQ = { T1(DEL) - T2(INS) }
      3) Rewrite lock queus to be O(1) in all cases but a few abort cases where we scan parallell queue
      4) Impl. a validate_lock_queue/dump_lock_queue test framework
    storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
      1) impl. a new read key from operation record needed by acc
      2) expand TRACE_OP toolkit
      3) impl. ACCKEY_ORD as needed by ACC changes
    storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
      1) impl. a new read key from operation record needed by acc
      2) expand TRACE_OP toolkit
      3) impl. ACCKEY_ORD as needed by ACC changes
    storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
      remove unused states/methods
    storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
      remove extremly tricky code that handles disk_insert_but_no_mem_insert
        that is no long needed with current acc changes
    storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp:
      remove unused states/methods
    storage/ndb/test/ndbapi/testOperations.cpp:
      renable last 3 lock upgrade testcases since they now pass
    be0ab479
Dblqh.hpp 115 KB