1. 21 Apr, 2017 6 commits
    • Kristian Nielsen's avatar
      MDEV-12179: Per-engine mysql.gtid_slave_pos table · 6a84473c
      Kristian Nielsen authored
      Intermediate commit.
      
      This commit implements that record_gtid() selects a gtid_slave_posXXX table
      with a storage engine already in use by current transaction, if any.
      
      The default table mysql.gtid_slave_pos is used if no match can be found on
      storage engine, or for GTID position updates with no specific storage
      engine.
      
      Table discovery of mysql.gtid_slave_pos* happens on initial GTID state load
      as well as on every START SLAVE. Some effort is made to make this possible
      without additional locking. New tables are added using lock-free atomics.
      Removing tables requires stopping all slaves first. A warning is given in
      the error log when a table is removed but a non-stopped slave still has a
      reference to it.
      
      If multiple mysql.gtid_slave_posXXX tables with same storage engine exist,
      one is chosen arbitrarily to be used, with a warning in the error log. GTID
      data from all tables is still read, but only one among redundant tables with
      same storage engine will be updated.
      6a84473c
    • Kristian Nielsen's avatar
      MDEV-12179: Per-engine mysql.gtid_slave_pos table · 3501a535
      Kristian Nielsen authored
      Intermediate commit.
      
      When deleting old GTIDs, only pick those GTIDs that were recorded using the
      same engine.
      
      (Currently this is not used, there is only one table/engine active. This is
      in preparation for extending record_gtid to pick the table with the same
      engine as the active transaction, if any).
      3501a535
    • Kristian Nielsen's avatar
      MDEV-12179: Per-engine mysql.gtid_slave_pos table · c995ecbe
      Kristian Nielsen authored
      Intermediate commit.
      
      For each GTID recorded in mysq.gtid_slave_pos, keep track of which
      engine the update was made in.
      
      This will be later used to know which rows can be deleted in the table
      of a given engine.
      c995ecbe
    • Kristian Nielsen's avatar
      MDEV-12179: Per-engine mysql.gtid_slave_pos table · 087cf023
      Kristian Nielsen authored
      Intermediate commit.
      
      Keep track of which mysql.gtid_slave_posXXX tables are available for each
      engine, by searching for all tables in the mysql schema with names that
      start with "gtid_slave_pos".
      
      The list is computed at server start when the GTID position is loaded, and
      it is re-computed on every START SLAVE command. This way, the DBA can
      manually add a table for a new engine, and it will be automatically picked
      up on next START SLAVE, so a full server restart is not needed.
      
      The list is not yet actually used in the code.
      087cf023
    • Kristian Nielsen's avatar
      MDEV-12179: Per-engine mysql.gtid_slave_pos table · 141a1b09
      Kristian Nielsen authored
      Intermediate commit.
      
      Refactor scan_all_gtid_slave_pos_table() so it can do generic processing on
      the list of mysql.gtid_slave_pos_XXX tables.
      141a1b09
    • Kristian Nielsen's avatar
      MDEV-12179: Per-engine mysql.gtid_slave_pos table. · d3837c69
      Kristian Nielsen authored
      Intermediate commit.
      
      On server start, look for and read all tables mysql.gtid_slave_pos* to
      restore the GTID position.
      
      Simple test case that moves the data to a new
      mysql.gtid_slave_pos_innodb table and verifies that the new table is
      read at server start.
      d3837c69
  2. 04 Apr, 2017 8 commits
  3. 03 Apr, 2017 5 commits
    • Igor Babaev's avatar
      Fixed bug mdev-10454. · 00ab154d
      Igor Babaev authored
      The patch actually fixes the old defect of the optimizer that
      could not extract keys for range access from IN predicates
      with row arguments.
      
      This problem was resolved in the mysql-5.7 code. The patch
      supersedes what was done there:
       - it can build range access when not all components of
       the first row argument are refer to the columns of the table
       for which the range access is constructed.
       - it can use equality predicates to build range access
       to the table that is not referred to in this argument.
      00ab154d
    • Marko Mäkelä's avatar
      MDEV-12428 SIGSEGV in buf_page_decrypt_after_read() during DDL · 9505c968
      Marko Mäkelä authored
      Also, some MDEV-11738/MDEV-11581 post-push fixes.
      
      In MariaDB 10.1, there is no fil_space_t::is_being_truncated field,
      and the predicates fil_space_t::stop_new_ops and fil_space_t::is_stopping()
      are interchangeable. I requested the fil_space_t::is_stopping() to be added
      in the review, but some added checks for fil_space_t::stop_new_ops were
      not replaced with calls to fil_space_t::is_stopping().
      
      buf_page_decrypt_after_read(): In this low-level I/O operation, we must
      look up the tablespace if it exists, even though future I/O operations
      have been blocked on it due to a pending DDL operation, such as DROP TABLE
      or TRUNCATE TABLE or other table-rebuilding operations (ALTER, OPTIMIZE).
      Pass a parameter to fil_space_acquire_low() telling that we are performing
      a low-level I/O operation and the fil_space_t::is_stopping() status should
      be ignored.
      9505c968
    • Sergei Petrunia's avatar
      Merge 10.2 into bb-10.2-mariarocks · 5e0ed691
      Sergei Petrunia authored
      5e0ed691
    • Sergei Petrunia's avatar
      Disable compilation of storage/rocksdb/unittest/test_properties_collector · 5c66eb5c
      Sergei Petrunia authored
      Met additional issues while trying to enable it.
      5c66eb5c
    • Jan Lindström's avatar
      MDEV-11629: Unknown table 'innodb_cmp_per_index_reset' in · c07bb700
      Jan Lindström authored
      information_schema. Added .opt file to enable running this
      test as a part of innodb_zip suite and recorded current
      correct results.
      c07bb700
  4. 02 Apr, 2017 15 commits
  5. 01 Apr, 2017 6 commits