1. 14 Oct, 2016 6 commits
    • Kristian Nielsen's avatar
      BUG#56442: Slave executes delayed statements when STOP SLAVE is issued · 81488071
      Kristian Nielsen authored
      Problem:
      When using the delayed slave feature, and the SQL thread is delaying,
      and the user issues STOP SLAVE, the event we wait for was executed.
      It should not be executed.
      Fix:
      Check the return value from the delay function,
      slave.cc:slave_sleep(). If the return value is 1, it means the thread
      has been stopped, in this case we don't execute the statement.
      
      Also, refactored the test case for delayed slave a little: added the
      test script include/rpl_assert.inc, which asserts that a condition holds
      and prints a message if not. Made rpl_delayed_slave.test use this. The
      advantage is that the test file is much easier to read and maintain,
      because it is clear what is an assertion and what is not, and also the
      expected result can be found in the test file, you don't have to compare
      it to the result file.
      
      Manually merged into MariaDB from MySQL commit
      fd2b210383358fe7697f201e19ac9779879ba72a
      Signed-off-by: default avatarKristian Nielsen <knielsen@knielsen-hq.org>
      81488071
    • Kristian Nielsen's avatar
    • Kristian Nielsen's avatar
      MDEV-7145: Delayed replication, cleanup some code · b2bc6dad
      Kristian Nielsen authored
      The original MySQL patch left some refactoring todo's, possibly
      because of known conflicts with other parallel development (like
      info-repository feature perhaps).
      
      This patch fixes those todos/refactorings.
      Signed-off-by: default avatarKristian Nielsen <knielsen@knielsen-hq.org>
      b2bc6dad
    • Kristian Nielsen's avatar
      MDEV-7145: Delayed replication, fixing test failures. · a9fb480f
      Kristian Nielsen authored
      Two merge error fixed, and testsuite updated to removed some other
      test failues.
      Signed-off-by: default avatarKristian Nielsen <knielsen@knielsen-hq.org>
      a9fb480f
    • Kristian Nielsen's avatar
      MDEV-7145: Delayed replication, intermediate commit. · 19abe79f
      Kristian Nielsen authored
      Initial merge of delayed replication from MySQL git.
      
      The code from the initial push into MySQL is merged, and the
      associated test case passes. A number of tasks are still pending:
      
      1. Check full test suite run for any regressions or .result file updates.
      
      2. Extend the feature to also work for parallel replication.
      
      3. There are some todo-comments about future refactoring left from
      MySQL, these should be located and merged on top.
      
      4. There are some later related MySQL commits, these should be checked
      and merged. These include:
          e134b9362ba0b750d6ac1b444780019622d14aa5
          b38f0f7857c073edfcc0a64675b7f7ede04be00f
          fd2b210383358fe7697f201e19ac9779879ba72a
          afc397376ec50e96b2918ee64e48baf4dda0d37d
      
      5. The testcase from MySQL relies heavily on sleep and timing for
      testing, and seems likely to sporadically fail on heavily loaded test
      servers in buildbot or distro build farms.
      Signed-off-by: default avatarKristian Nielsen <knielsen@knielsen-hq.org>
      19abe79f
    • Kristian Nielsen's avatar
      Remove unnecessary global mutex in parallel replication. · 50f19ca8
      Kristian Nielsen authored
      The function apply_event_and_update_pos() is called with the
      rli->data_lock mutex held. However, there seems to be nothing in the
      function actually needing the mutex to be held. Certainly not in the
      parallel replication case, where sql_slave_skip_counter is always 0
      since the non-zero case is handled by the SQL driver thread.
      
      So this patch makes parallel replication use a variant of
      apply_event_and_update_pos() without the need to take the
      rli->data_lock mutex. This avoids one contended global mutex for each
      event executed, which might improve performance on CPU-bound workloads
      somewhat.
      Signed-off-by: default avatarKristian Nielsen <knielsen@knielsen-hq.org>
      50f19ca8
  2. 08 Sep, 2016 1 commit
    • Kristian Nielsen's avatar
      Parallel replication async deadlock kill · 7e0c9de8
      Kristian Nielsen authored
      When a deadlock kill is detected inside the storage engine, the kill
      is not done immediately, to avoid calling back into the storage engine
      kill_query method with various lock subsystem mutexes held. Instead the
      kill is queued and done later by a slave background thread.
      
      This patch in preparation for fixing TokuDB optimistic parallel
      replication, as well as for removing locking hacks in InnoDB/XtraDB in
      10.2.
      
      Signed-off-by: Kristian Nielsen <knielsen at knielsen-hq.org>
      7e0c9de8
  3. 29 Aug, 2016 2 commits
  4. 27 Aug, 2016 1 commit
  5. 26 Aug, 2016 3 commits
  6. 25 Aug, 2016 4 commits
  7. 24 Aug, 2016 6 commits
  8. 23 Aug, 2016 4 commits
  9. 22 Aug, 2016 6 commits
  10. 21 Aug, 2016 7 commits
    • Nirbhay Choubey's avatar
      MDEV-9423: cannot add new node to the cluser: Binlog.. · cced23cf
      Nirbhay Choubey authored
      .. file '/var/log/mysql/mariadb-bin.000001' not found in binlog
      index, needed for recovery. Aborting.
      
      In Galera cluster, while preparing for rsync/xtrabackup based
      SST, the donor node takes an FTWRL followed by (REFRESH_ENGINE_LOG
      in rsync based state transfer and) REFRESH_BINARY_LOG. The latter
      rotates the binary log and logs Binlog_checkpoint_log_event
      corresponding to the penultimate binary log file into the new file.
      The checkpoint event for the current file is later logged
      synchronously by binlog_background_thread.
      
      Now, since in rsync/xtrabackup based snapshot state transfer methods,
      only the last binary log file is transferred to the joiner node; the
      file could get transferred even before the checkpoint event for the
      same file gets written to it. As a result, the joiner node would fail
      to start complaining about the missing binlog file needed for recovery.
      
      In order to fix this, a mechanism has been put in place to make
      REFRESH_BINARY_LOG operation wait for Binlog_checkpoint_log_event
      to be logged for the current binary log file if the node is part of
      a Galera cluster. As further safety, during rsync based state transfer
      the donor node now acquires and owns LOCK_log for the duration of file
      transfer during SST.
      cced23cf
    • sjaakola's avatar
      Refs: MW-279 · 415823a4
      sjaakola authored
      - fixes in innodb to skip wsrep processing (like kill victim) when running in native mysql mode
      - similar fixes in mysql server side
      - forcing tc_log_dummy in native mysql mode when no binlog used. wsrep hton messes up handler counter
        and used to lead in using tc_log_mmap instead. Bad news is that tc_log_mmap does not seem to work at all
      415823a4
    • Damien Ciabrini's avatar
      refs codership/mysql-wsrep#267 · fec296cc
      Damien Ciabrini authored
      Fix Galera crash at startup when compiled with gcc 6
      fec296cc
    • Philip Stoev's avatar
      Bump WSREP_PATCH_VERSION to 16 · 2e56c7f3
      Philip Stoev authored
      2e56c7f3
    • Philip Stoev's avatar
    • Philip Stoev's avatar
    • Philip Stoev's avatar
      Galera MTR Tests: increase timeouts and adjust some sporadically-failing tests... · 06564531
      Philip Stoev authored
      Galera MTR Tests: increase timeouts and adjust some sporadically-failing tests so that the Galera suites can be run with --parallel=4
      06564531