• unknown's avatar
    ndb - bug#34216 · e156d6af
    unknown authored
      During TC-take-over (NF) the new-TC builds up a new transaction state
      And commits operation according to this state.
      However, in the new state that is build, the operations does not have to be in same order, as "real" state
      In the multi-update-case, this means that operations can be commit in "incorrect" order
    
      i.e update A, delete A, insert A is normally commited in same order as prepared
          but can be committed in any order
    
      This patch changes TUP handling of these out-order commits, and previous implementation
        could confuse the TUX triggers
    
    
    storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
      new method
    storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp:
      move removeActiveOpList, cause it's now only used by DbtupAbort
    storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp:
      - move tux-trigger execution *before* check of disk, since ops can be committed during a disk timeslice
      - allow out-of-order commits and use tuple_ptr->m_operation_ptr_i for determening "real" commit
        (instead of re-ordering operations on the fly, which confused tux-triggers)
    storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
      use constant instead of number
    storage/ndb/test/run-test/daily-basic-tests.txt:
      "old-51" does not yet support --nologging
    e156d6af
DbtupExecQuery.cpp 92.8 KB