1. 05 Nov, 2019 3 commits
  2. 04 Nov, 2019 5 commits
    • Marko Mäkelä's avatar
      MDEV-19586: Restore pointer indirection for recv_t::data · 51fb39bf
      Marko Mäkelä authored
      Something was wrong with the removal of pointer indirection,
      because on 32-bit Windows we got crash recovery failures.
      Curiously, WITH_ASAN of a 32-bit debug build did not notice anything.
      
      This reverts a part of commit b7fc2c89.
      
      We have a 2MiB recv_sys.buf for the initial buffering. The minimum size
      of log_sys.buf would be 16MiB, and that buffer should be practically
      unused during recovery. If the buffer pool size is measured in gigabytes,
      it would indeed make sense to use the buffer pool for the recovered log
      records, perhaps after we have run out of log_sys.buf.
      
      FIXME: allow the entire buf_block_t::frame to be used for buffered
      log records, and remove MEM_HEAP_FOR_RECV_SYS. For example, use
      buf_page_t::list or buf_page_t::LRU for keeping track of memory that
      was allocated for recovery? Most members of buf_block_t
      (except buf_block_t::frame) are unused when
      block->page.state == BUF_BLOCK_MEMORY.
      51fb39bf
    • Marko Mäkelä's avatar
      MDEV-18115: Remove a unused variable · f89436b5
      Marko Mäkelä authored
      f89436b5
    • Marko Mäkelä's avatar
      Fix -Wmaybe-uninitialized · 8f40c029
      Marko Mäkelä authored
      Follow-up to commit 8965ae27:
      always initialize found_group.
      8f40c029
    • Marko Mäkelä's avatar
      MDEV-19586: Clean up recv_t a little · 541b00a3
      Marko Mäkelä authored
      recv_t, recv_t::data_t: Define constructors that copy the log records
      
      Ideally, we should remove recv_sys.buf, RECV_DATA_BLOCK_SIZE,
      and recv_sys_justify_left_parsing_buf(), and let the
      recv_sys.pages point directly to a buffer of parsed redo log
      records.
      
      The RECV_PARSING_BUF_SIZE (size of recv_sys.buf) is only 2MiB,
      while the minimum innodb_log_buffer_size (size of log_sys.buf) is 16MiB,
      and log_sys.buf is unused during redo log apply!
      541b00a3
    • Marko Mäkelä's avatar
      MDEV-19586: Add const qualifiers · 64a02e4f
      Marko Mäkelä authored
      Except for fil_name_process(), which invokes os_normalize_path(),
      the redo log record parser will not modify the redo log records.
      Add const qualifiers accordingly.
      64a02e4f
  3. 03 Nov, 2019 2 commits
  4. 01 Nov, 2019 3 commits
    • Marko Mäkelä's avatar
      MDEV-19586: Avoid std::map::emplace() · e5fed3b9
      Marko Mäkelä authored
      GCC 4.7 only knows about std::map::insert(), not emplace().
      
      Also, reformat the function in the common style.
      e5fed3b9
    • Marko Mäkelä's avatar
      Refactor recv_sys_t::recs_t into page_recv_t · b7fc2c89
      Marko Mäkelä authored
      page_recv_t: Replaces recv_sys_t::recs_t.
      page_recv_t::state is not private, even though some accessors exist.
      
      page_recv_t::log: A singly-linked list of log_rec_t* with STL decoration
      and the custom operations trim() and append(). The list members are private.
      
      recv_t::data_t: Replaces recv_data_t.
      
      recv_t::data: Remove the pointer indirection for the first log chunk,
      and copy the first chunk directly after the record. Adjust the
      definition of RECV_DATA_BLOCK_SIZE accordingly.
      b7fc2c89
    • Marko Mäkelä's avatar
      MDEV-19586: Rename recv_sys.empty() to recv_sys.clear() · 2aa1f77e
      Marko Mäkelä authored
      In the collections of Standard Template Library,
      empty() is a predicate and clear() empties a collection.
      Let us rename recv_sys.empty() to recv_sys.clear() to avoid confusion.
      2aa1f77e
  5. 31 Oct, 2019 2 commits
  6. 30 Oct, 2019 4 commits
  7. 29 Oct, 2019 5 commits
  8. 28 Oct, 2019 8 commits
  9. 25 Oct, 2019 1 commit
  10. 24 Oct, 2019 2 commits
  11. 23 Oct, 2019 3 commits
    • Marko Mäkelä's avatar
      MDEV-20487 Set innodb_adaptive_hash_index=OFF by default · 88cdfc5c
      Marko Mäkelä authored
      Based on the performance testing that was conducted in MDEV-17492,
      the InnoDB adaptive hash index could only help performance in specific,
      almost-read-only workloads. It could slow down all kinds of workloads
      (especially DROP TABLE, TRUNCATE TABLE, ALTER TABLE, or DROP INDEX
      operations), and it can become corrupted, causing crashes (such as
      MDEV-18815, MDEV-20203) and possibly data corruption. Furthermore,
      the adaptive hash index consumes space from the InnoDB buffer pool,
      which could hurt performance when the working set would almost fit
      in the buffer pool.
      
      Given all this, it is best to disable the adaptive hash index by default.
      88cdfc5c
    • Jan Lindström's avatar
    • Jan Lindström's avatar
      Stabilize tests. · 1036886b
      Jan Lindström authored
      Changes to be committed:
      	modified:   mysql-test/suite/galera_sr/disabled.def
      	modified:   mysql-test/suite/galera_sr/r/GCF-561.result
      	modified:   mysql-test/suite/galera_sr/r/galera_sr_ddl_master.result
      	modified:   mysql-test/suite/galera_sr/r/galera_sr_kill_query.result
      	modified:   mysql-test/suite/galera_sr/r/galera_sr_shutdown_slave.result
      	new file:   mysql-test/suite/galera_sr/suite.pm
      	modified:   mysql-test/suite/galera_sr/t/GCF-561.test
      	modified:   mysql-test/suite/galera_sr/t/galera_sr_ddl_master.test
      	modified:   mysql-test/suite/galera_sr/t/galera_sr_kill_query.test
      	modified:   mysql-test/suite/galera_sr/t/galera_sr_shutdown_slave.test
      1036886b
  12. 20 Oct, 2019 2 commits
    • Monty's avatar
      Ensure that full_crc32_import doesn't fail · 9c735784
      Monty authored
      Test should die if innodb_compression_algorithm=3 doesn't exists
      9c735784
    • Monty's avatar
      Server crashes with BACKUP STAGE and FLUSH TABLE table_name · c2e0a0b1
      Monty authored
      Fixes MDEV-18067, MDEV-18068 and MDEV-18069
      
      The problem was that FLUSH TABLES table_name combined with UNLOCK TABLES
      calls MDL_context::set_transaction_duration_for_all_locks(), which
      changed backup_locks from MDL_EXPLICT to MDL_TRANSACTION.
      
      Fixed by ensuring that set_transaction_duration_for_all_locks() doesn't
      touch BACKUP locks.
      c2e0a0b1