An error occurred fetching the project authors.
  1. 06 Apr, 2019 1 commit
    • Teemu Ollakka's avatar
      Fixed wsrep replaying for stored procedures (#1256) · eb872ceb
      Teemu Ollakka authored
      - Changed replaying to always allocate a separate THD object
        for applying log events. This is to avoid tampering original
        THD state during replay process.
      - Return success from sp_instr_stmt::exec_core() if replaying
        succeeds.
      - Do not push warnings/errors into diagnostics area if the
        transaction must be replayed. This is to avoid reporting
        transient errors to the client.
      
      Added two tests galera_sp_bf_abort, galera_sp_insert_parallel.
      Wsrep-lib position updated.
      eb872ceb
  2. 15 Mar, 2019 1 commit
    • Teemu Ollakka's avatar
      10.4 wsrep group commit fixes (#1224) · 1ef50a34
      Teemu Ollakka authored
      * MDEV-16509 Improve wsrep commit performance with binlog disabled
      
      Release commit order critical section early after trx_commit_low() if
      binlog is not transaction coordinator. In order to avoid two phase commit,
      binlog_hton is not registered for THD during IO_CACHE population.
      
      Implemented a test which verifies that the transactions release
      commit order early.
      
      This optimization will change behavior during recovery as the commit
      is not two phase when binlog is off. Fixed and recorded wsrep-recover-v25
      and wsrep-recover to match the behavior.
      
      * MDEV-18730 Ordering for wsrep binlog group commit
      
      Previously out of order execution was allowed for wsrep commits.
      Established proper ordering by populating wait_for_commit
      for every wsrep THD and making group commit leader to wait for
      prior commits before proceeding to trx_group_commit_leader().
      
      * MDEV-18730 Added a test case to verify correct commit ordering
      
      * MDEV-16509, MDEV-18730 Review fixes
      
      Use WSREP_EMULATE_BINLOG() macro to decide if the binlog_hton
      should be registered. Whitespace/syntax fixes and cleanups.
      
      * MDEV-16509 Require binlog for galera_var_innodb_disallow_writes test
      
      If the commit to InnoDB is done in one phase, the native InnoDB behavior
      is that the transaction is committed in memory before it is persisted to
      disk. This means that the innodb_disallow_writes=ON may not prevent
      transaction to become visible to other readers before commit is completely
      over. On the other hand, if the commit is two phase (as it is with binlog),
      the transaction will be blocked in prepare phase.
      
      Fixed the test to use binlog, which enforces two phase commit, which
      in turn makes commit to block before the changes become visible to
      other connections. This guarantees that the test produces expected
      result.
      1ef50a34
  3. 04 Mar, 2019 1 commit
    • Teemu Ollakka's avatar
      MDEV-18631 Fix streaming replication with wsrep_gtid_mode=ON · a8ff4f24
      Teemu Ollakka authored
      With wsrep_gtid_mode=ON, the appropriate commit hooks were not
      called in all cases for applied streaming transactions.
      
      As a fix, removed all special handling of commit order critical
      section from Wsrep_high_priority_service and Wsrep_storage_service.
      Now commit order critical section is always entered in ha_commit_trans().
      
      Check for wsrep_run_commit_hook is now done in handler.cc, log.cc.
      This makes it explicit that the transaction is an active wsrep
      transaction which must go through commit hooks.
      a8ff4f24
  4. 19 Feb, 2019 1 commit
    • Teemu Ollakka's avatar
      Fixed replaying bugs found with multimaster load · 7ae685d0
      Teemu Ollakka authored
      The replayer did not signal replaying waiters. Added
      mysql_cond_broadcast() after replaying is over.
      
      Assertion on client error failed after replay attempt failed due
      to certification failure. At this point the transaction does not
      go through client state, so the client error cannot be overridden.
      Assign ER_LOCK_DEADLOCK to thd directly instead.
      
      Use timed cond wait when waiting for replayers to finish and
      check if the transaction has been BF aborted during the wait.
      7ae685d0
  5. 23 Jan, 2019 1 commit