1. 16 Jun, 2019 1 commit
  2. 13 Jun, 2019 1 commit
  3. 12 Jun, 2019 6 commits
    • Marko Mäkelä's avatar
      MDEV-19738: Skip doublewrite on MLOG_ZIP_PAGE_COMPRESS · d46db415
      Marko Mäkelä authored
      page_zip_compress(), page_zip_compress_write_log(),
      page_zip_copy_recs(): Replace the parameters page,page_zip with block,
      and set buf_page_t::init_on_flush on success
      if innodb_log_optimize_ddl=OFF.
      
      page_zip_parse_compress_no_data(): Merge with the only caller
      recv_parse_or_apply_log_rec_body().
      d46db415
    • Marko Mäkelä's avatar
      MDEV-19738: Doublewrite buffer is unnecessarily used for newly (re)initialized pages · 8bb4ea2e
      Marko Mäkelä authored
      Thanks to MDEV-12699, the doublewrite buffer will only be needed in
      those cases when a page is being updated in the data file. If the page
      had never been written to the data file since it was initialized,
      then recovery will be able to reconstruct the page based solely on
      the contents of the redo log files.
      
      The doublewrite buffer is only really needed when recovery needs to read
      the page in order to apply redo log.
      
      Note: As noted in MDEV-19739, we cannot safely disable the doublewrite
      buffer if any MLOG_INDEX_LOAD records were written in the past or will
      be written in the future. These records denote that redo logging was
      disabled for some pages in a tablespace. Ideally, we would have
      the setting innodb_log_optimize_ddl=OFF by default, and would not allow
      it to be set while the server is running. If we wanted to make this
      safe, assignments with SET GLOBAL innodb_log_optimize_ddl=...
      should not only issue a redo log checkpoint (including a write of all
      dirty pages from the entire buffer pool), but it should also wait for
      all pending ALTER TABLE activity to complete. We elect not to do this.
      
      Avoiding unnecessary use of the doublewrite buffer should improve the
      write performance of InnoDB.
      
      buf_page_t::init_on_flush: A new flag to indicate whether it is safe to
      skip doublewrite buffering when writing the page.
      
      fsp_init_file_page(): When writing a MLOG_INIT_FILE_PAGE2 record,
      set the init_on_flush flag if innodb_log_optimize_ddl=OFF.
      This is the only function that writes that log record.
      
      buf_flush_write_block_low(): Skip doublewrite if init_on_flush is set.
      
      fil_aio_wait(): Clear init_on_flush.
      8bb4ea2e
    • Marko Mäkelä's avatar
      MDEV-19586: Remove unnecessary iteration · 38018f48
      Marko Mäkelä authored
      recv_apply_hashed_log_recs(): Refer directly to recs.last->end_lsn
      instead of iterating the entire list starting from recs.log.
      38018f48
    • Kentoku SHIBA's avatar
      8e3a4be4
    • Jan Lindström's avatar
      Move server_threads.erase() under lightweight cleanup as · b6e0d247
      Jan Lindström authored
      when plugins_are_initialized we already called unlink_thd()
      and that calls server_threads.erase()
      b6e0d247
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 2fd82471
      Marko Mäkelä authored
      2fd82471
  4. 11 Jun, 2019 12 commits
  5. 10 Jun, 2019 4 commits
    • Kentoku SHIBA's avatar
      MDEV-16249 CHECKSUM TABLE for a spider table is not parallel and saves all... · be5c432a
      Kentoku SHIBA authored
      MDEV-16249 CHECKSUM TABLE for a spider table is not parallel and saves all data in memory in the spider head by default (#1328)
      
      add checksum_null for setting null value of checksum
      be5c432a
    • Marko Mäkelä's avatar
      MDEV-19725 Incorrect error handling in ALTER TABLE · cbac8f93
      Marko Mäkelä authored
      Some I/O functions and macros that are declared in os0file.h used to
      return a Boolean status code (nonzero on success). In MySQL 5.7, they
      were changed to return dberr_t instead. Alas, in MariaDB Server 10.2,
      some uses of functions were not adjusted to the changed return value.
      
      Until MDEV-19231, the valid values of dberr_t were always nonzero.
      This means that some code that was incorrectly checking for a zero
      return value from the functions would never detect a failure.
      
      After MDEV-19231, some tests for ALTER ONLINE TABLE would fail with
      cmake -DPLUGIN_PERFSCHEMA=NO. It turned out that the wrappers
      pfs_os_file_read_no_error_handling_int_fd_func() and
      pfs_os_file_write_int_fd_func() were wrongly returning
      bool instead of dberr_t. Also the callers of these functions were
      wrongly expecting bool (nonzero on success) instead of dberr_t.
      
      This mistake had been made when the addition of these functions was
      merged from MySQL 5.6.36 and 5.7.18 into MariaDB Server 10.2.7.
      
      This fix also reverts commit 40becbc3
      which attempted to work around the problem.
      cbac8f93
    • Alexander Barkov's avatar
      16366564
    • Otto Kekäläinen's avatar
      Deb: Purge unused debconf translations · 5e9090ef
      Otto Kekäläinen authored
      5e9090ef
  6. 07 Jun, 2019 7 commits
  7. 06 Jun, 2019 7 commits
  8. 05 Jun, 2019 2 commits