1. 21 Feb, 2019 23 commits
  2. 20 Feb, 2019 7 commits
  3. 19 Feb, 2019 10 commits
    • Oleksandr Byelkin's avatar
      c65daf02
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-12026: Implement innodb_checksum_algorithm=full_crc32 · c0f47a4a
      Thirunarayanan Balathandayuthapani authored
      MariaDB data-at-rest encryption (innodb_encrypt_tables)
      had repurposed the same unused data field that was repurposed
      in MySQL 5.7 (and MariaDB 10.2) for the Split Sequence Number (SSN)
      field of SPATIAL INDEX. Because of this, MariaDB was unable to
      support encryption on SPATIAL INDEX pages.
      
      Furthermore, InnoDB page checksums skipped some bytes, and there
      are multiple variations and checksum algorithms. By default,
      InnoDB accepts all variations of all algorithms that ever existed.
      This unnecessarily weakens the page checksums.
      
      We hereby introduce two more innodb_checksum_algorithm variants
      (full_crc32, strict_full_crc32) that are special in a way:
      When either setting is active, newly created data files will
      carry a flag (fil_space_t::full_crc32()) that indicates that
      all pages of the file will use a full CRC-32C checksum over the
      entire page contents (excluding the bytes where the checksum
      is stored, at the very end of the page). Such files will always
      use that checksum, no matter what the parameter
      innodb_checksum_algorithm is assigned to.
      
      For old files, the old checksum algorithms will continue to be
      used. The value strict_full_crc32 will be equivalent to strict_crc32
      and the value full_crc32 will be equivalent to crc32.
      
      ROW_FORMAT=COMPRESSED tables will only use the old format.
      These tables do not support new features, such as larger
      innodb_page_size or instant ADD/DROP COLUMN. They may be
      deprecated in the future. We do not want an unnecessary
      file format change for them.
      
      The new full_crc32() format also cleans up the MariaDB tablespace
      flags. We will reserve flags to store the page_compressed
      compression algorithm, and to store the compressed payload length,
      so that checksum can be computed over the compressed (and
      possibly encrypted) stream and can be validated without
      decrypting or decompressing the page.
      
      In the full_crc32 format, there no longer are separate before-encryption
      and after-encryption checksums for pages. The single checksum is
      computed on the page contents that is written to the file.
      
      We do not make the new algorithm the default for two reasons.
      First, MariaDB 10.4.2 was a beta release, and the default values
      of parameters should not change after beta. Second, we did not
      yet implement the full_crc32 format for page_compressed pages.
      This will be fixed in MDEV-18644.
      
      This is joint work with Marko Mäkelä.
      c0f47a4a
    • Oleksandr Byelkin's avatar
      Merge branch '10.2' into bb-10.3-merge · 00906719
      Oleksandr Byelkin authored
      00906719
    • Oleksandr Byelkin's avatar
      Merge branch '10.3' into bb-10.3-merge · 055c09ad
      Oleksandr Byelkin authored
      055c09ad
    • Oleksandr Byelkin's avatar
      Merge branch '10.1' into 10.2 · 91d506cf
      Oleksandr Byelkin authored
      91d506cf
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · fc124778
      Marko Mäkelä authored
      fc124778
    • Alexander Barkov's avatar
      Fixing compilation problems with this DBUG_ASSERT_AS_PRINTF · 93984ff6
      Alexander Barkov authored
      For example, with this cmake command line:
      
      cmake . -DCMAKE_C_FLAGS="-DDBUG_ASSERT_AS_PRINTF" \
              -DCMAKE_CXX_FLAGS="-DDBUG_ASSERT_AS_PRINTF"
      93984ff6
    • Sergey Vojtovich's avatar
      Fixed build failure · abd3c202
      Sergey Vojtovich authored
      Apparently DBUG_ASSERT() can co-exist with DBUG_OFF when
      -DCMAKE_CXX_FLAGS="-DDBUG_ASSERT_AS_PRINTF".
      
      Removed assertion as it is useless now, since the type is unsigned.
      abd3c202
    • Oleksandr Byelkin's avatar
      1. centos has symlinks /bin->usr/bin and /sbin -> usr/sbin, · 431da59f
      Oleksandr Byelkin authored
      but even if this script called as /bin/mysql_install_db
      it is still standard install and scripts are in /usr/share/
      (but not in the /share/)
      2. fix of bindir path
      431da59f
    • Teemu Ollakka's avatar
      Fixed replaying bugs found with multimaster load · 7ae685d0
      Teemu Ollakka authored
      The replayer did not signal replaying waiters. Added
      mysql_cond_broadcast() after replaying is over.
      
      Assertion on client error failed after replay attempt failed due
      to certification failure. At this point the transaction does not
      go through client state, so the client error cannot be overridden.
      Assign ER_LOCK_DEADLOCK to thd directly instead.
      
      Use timed cond wait when waiting for replayers to finish and
      check if the transaction has been BF aborted during the wait.
      7ae685d0