1. 12 Dec, 2017 10 commits
  2. 11 Dec, 2017 12 commits
  3. 10 Dec, 2017 1 commit
  4. 09 Dec, 2017 1 commit
    • Vesa Pentti's avatar
      MDEV-12501 -- set --maturity-level by default · 99bcec29
      Vesa Pentti authored
        * Note: breaking change; since this commit, a plugin that has
          worked so far might get rejected due to plugin maturity
        * mariabackup is not affected (allows all plugins)
        * VERSION file defines SERVER_MATURITY, which defines the
          corresponding numeric value as SERVER_MATURITY_LEVEL in
          include/mysql_version.h
        * The default value for 'plugin_maturity' is SERVER_MATURITY_LEVEL - 1
        * Logs a warning if a plugin has maturity lower than
          SERVER_MATURITY_LEVEL
        * Tests suppress the plugin maturity warning
        * Tests use --plugin-maturity=unknown by default so as not to fail
          due to the stricter plugin maturity handling
      99bcec29
  5. 08 Dec, 2017 16 commits
    • Sergey Vojtovich's avatar
      Fixed LF_BACKOFF calls · 927dd9f3
      Sergey Vojtovich authored
      927dd9f3
    • Marko Mäkelä's avatar
      Remove the unused function row_is_magic_monitor_table() · 0af52734
      Marko Mäkelä authored
      Before MySQL 5.7 or MariaDB 10.2.2, there used to be some
      magic InnoDB table names that would assign some InnoDB flags
      on CREATE TABLE or DROP TABLE.
      0af52734
    • Marko Mäkelä's avatar
      Remove dead code for "InnoDB table(space) monitor" · 51bc4074
      Marko Mäkelä authored
      Starting with MySQL 5.7 (or MariaDB 10.2.2) InnoDB no longer contains
      the "table monitor" or "tablespace monitor". The conditions on
      srv_print_innodb_tablespace_monitor, srv_print_innodb_table_monitor
      never hold. So, the code was dead.
      
      Also, remove a bogus reference to dict_print(), which used to implement
      the InnoDB table monitor.
      51bc4074
    • Marko Mäkelä's avatar
      Remove space_name_list_t · 39450498
      Marko Mäkelä authored
      fil_get_space_names(): Remove.
      
      fts_drop_orphaned_tables(): Iterate fil_system->space_list directly.
      39450498
    • Marko Mäkelä's avatar
      Merge 10.2 into bb-10.2-ext · 094b0f86
      Marko Mäkelä authored
      094b0f86
    • Sergey Vojtovich's avatar
      c60095a8
    • Sergey Vojtovich's avatar
      MDEV-14529 - InnoDB rw-locks: optimize memory barriers · b04f2a0f
      Sergey Vojtovich authored
      Relax memory barrier for lock_word.
      
      rw_lock_lock_word_decr() - used to acquire rw-lock, thus we only need to issue
      ACQUIRE when we succeed locking.
      
      rw_lock_x_lock_func_nowait() - same as above, but used to attempt to acquire
      X-lock.
      
      rw_lock_s_unlock_func() - used to release S-lock, RELEASE is what we need here.
      
      rw_lock_x_unlock_func() - used to release X-lock. Ideally we'd need only RELEASE
      here, but due to mess with waiters (they must be loaded after lock_word is
      stored) we have to issue both ACQUIRE and RELEASE.
      
      rw_lock_sx_unlock_func() - same as above, but used to release SX-lock.
      
      rw_lock_s_lock_spin(), rw_lock_x_lock_func(), rw_lock_sx_lock_func() -
      fetch-and-store to waiters has to issue only ACQUIRE memory barrier, so that
      waiters are stored before lock_word is loaded.
      
      Note that there is violation of RELEASE-ACQUIRE protocol here, because we do
      on lock:
      
        my_atomic_fas32_explicit((int32*) &lock->waiters, 1, MY_MEMORY_ORDER_ACQUIRE);
        my_atomic_load32_explicit(&lock->lock_word, MY_MEMORY_ORDER_RELAXED);
      
      on unlock
      
        my_atomic_add32_explicit(&lock->lock_word, X_LOCK_DECR, MY_MEMORY_ORDER_ACQ_REL);
        my_atomic_load32_explicit((int32*) &lock->waiters, MY_MEMORY_ORDER_RELAXED);
      
      That is we kind of synchronize ACQUIRE on lock_word with ACQUIRE on waiters.
      It was there before this patch. Simple fix may have negative performance impact.
      Proper fix requires refactoring of lock_word.
      b04f2a0f
    • Sergey Vojtovich's avatar
      MDEV-14529 - InnoDB rw-locks: optimize memory barriers · 51bb18f9
      Sergey Vojtovich authored
      Relax memory barrier for waiters: these 2 stores must be completed before
      os_event_set() finishes. This is guaranteed by RELEASE barrier issued by
      mutex.exit() of os_event_set().
      51bb18f9
    • Sergey Vojtovich's avatar
      MDEV-14529 - InnoDB rw-locks: optimize memory barriers · 5b624f00
      Sergey Vojtovich authored
      Remove volatile modifier from waiters: it's not supposed for inter-thread
      communication, use appropriate atomic operations instead.
      
      Changed waiters to int32_t, my_atomic friendly type.
      5b624f00
    • Sergey Vojtovich's avatar
      MDEV-14529 - InnoDB rw-locks: optimize memory barriers · 57d20f11
      Sergey Vojtovich authored
      Remove volatile modifier from lock_word: it's not supposed for inter-thread
      communication, use appropriate atomic operations instead.
      57d20f11
    • Sergey Vojtovich's avatar
      MDEV-14529 - InnoDB rw-locks: optimize memory barriers · c73e77da
      Sergey Vojtovich authored
      Change lock_word from lint to int32_t: the latter is my_atomic_* friendly type.
      c73e77da
    • Vladislav Vaintroub's avatar
      Fix warnings · bf963106
      Vladislav Vaintroub authored
      bf963106
    • Monty's avatar
      Fix failing mtr tests · 38908aaf
      Monty authored
      - Changed rocksdb.2pcgroup_commit.test to print information on error
      - Updated myisam_views-big.result
      38908aaf
    • Monty's avatar
      Move all kill mutex protection to LOCK_thd_kill · c2118a08
      Monty authored
      LOCK_thd_data was used to protect both THD data and
      ensure that the THD is not deleted while it was in use
      
      This patch moves the THD delete protection to LOCK_thd_kill,
      which already protects the THD for kill.
      
      The benefits are:
      - More well defined what LOCK_thd_data protects
      - LOCK_thd_data usage is now much simpler and easier to verify
      - Less chance of deadlocks in SHOW PROCESS LIST as there is less
        chance of interactions between mutexes
      - Remove not needed LOCK_thread_count from
        thd_get_error_context_description()
      - Fewer mutex taken for thd->awake()
      
      Other things:
      - Don't take mysys->var mutex in show processlist to check if thread
        is kill marked
      - thd->awake() now automatically takes the LOCK_thd_kill mutex
        (Simplifies code)
      - Apc uses LOCK_thd_kill instead of LOCK_thd_data
      c2118a08
    • Monty's avatar
      Updated MW-388.result file · 3574f9c7
      Monty authored
      3574f9c7
    • Monty's avatar
      Don't wait too long in SHOW PROCESSLIST · 7891a713
      Monty authored
      This will allow show processlist to continue, without blocking
      all new connections, if some threads gets stuck while holding
      LOCK_thd_data or mysys_var->mutex
      
      Connections that has mutex 'stuck' are marked as 'Busy' in 'Command'
      
      Todo:
      Make F_BACKOFF to do 'pause' instead of just (1)
      7891a713