1. 21 Feb, 2019 12 commits
  2. 20 Feb, 2019 7 commits
  3. 19 Feb, 2019 21 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
    • Jan Lindström's avatar
      MDEV-18632: wsrep_is_wsrep_xid: Conditional jump or move depends on uninitialised value · 48554fe2
      Jan Lindström authored
      Transaction XID is not initialized before transaction is started.
      48554fe2
    • Igor Babaev's avatar
      Merge branch '10.4' into bb-10.4-mdev7486 · 2a935329
      Igor Babaev authored
      2a935329
    • mkaruza's avatar
      Fix for galera_3nodes.galera_gtid_2_cluster · ddc98339
      mkaruza authored
      Temporary disable WSREP while executing RESET MASTER. In situation when 2 nodes are both master/slave first stop slave on both and than reset master.
      Enforce stricter causality check with wsrep_sync_wait.
      ddc98339
    • mkaruza's avatar
      Fix for galera_3nodes.galera_garbd · baed6632
      mkaruza authored
      Check for garbd executable on different paths. If not found terminate test.
      baed6632
    • Sergei Golubchik's avatar
      2de0b57d
    • Igor Babaev's avatar
      Merge branch '10.4' into bb-10.4-mdev7486 · 2e73c561
      Igor Babaev authored
      2e73c561
    • Igor Babaev's avatar
      MDEV-7486: Condition pushdown from HAVING into WHERE · 8283d7d2
      Igor Babaev authored
      Optimized the code that removed multiple equalities pushed from HAVING
      into WHERE. Now this removal is postponed until all multiple equalities
      are eliminated in substitute_for_best_equal_field().
      8283d7d2
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-18639 Assertion failure upon attempt to start with lower number of undo tablespaces · 88b6dc4d
      Thirunarayanan Balathandayuthapani authored
      trx_rseg_t::is_persistent(): Correct a bogus debug assertion.
      88b6dc4d
    • Vicențiu Ciorbaru's avatar
      Implement avg_frequency unsmoothed jacknife estimator · 76442927
      Vicențiu Ciorbaru authored
      When sampling data through ANALYZE TABLE, use the estimator to get a
      better estimation of avg_frequency instead of just using the raw sampled data.
      76442927
    • Vicențiu Ciorbaru's avatar
      Introduce analyze_sample_percentage variable · f0773b78
      Vicențiu Ciorbaru authored
      The variable controls the amount of sampling analyze table performs.
      
      If ANALYZE table with histogram collection is too slow, one can reduce the
      time taken by setting analyze_sample_percentage to a lower value of the
      total number of rows.
      Setting it to 0 will use a formula to compute how many rows to sample:
      
      The number of rows collected is capped to a minimum of 50000 and
      increases logarithmically with a coffecient of 4096. The coffecient is
      chosen so that we expect an error of less than 3% in our estimations
      according to the paper:
      "Random Sampling for Histogram Construction: How much is enough?”
      – Surajit Chaudhuri, Rajeev Motwani, Vivek Narasayya, ACM SIGMOD, 1998.
      
      The drawback of sampling is that avg_frequency number is computed
      imprecisely and will yeild a smaller number than the real one.
      f0773b78
    • Vicențiu Ciorbaru's avatar
      Simplify column data adding method · 47f15ea7
      Vicențiu Ciorbaru authored
      The add method does not need to provide the row order number. It was
      only used to detect if the minimum/maximum value was populated once or not, so
      as to force an update for the first encounter of a value.
      47f15ea7