Skip to content
Permalink
Branch: 10.5
Commits on Oct 2, 2019
  1. MDEV-20684: innodb/query cache use madvise CORE/NOCORE on FreeBSD

    grooverdan authored and svoj committed Sep 23, 2019
    This applies to large allocations.
    
    This maps to the way Linux does it in MDEV-10814 except FreeBSD uses
    different constants.
    
    Adjust error string to match to implementation.
    
    Tested on FreeBSD-12.0
Commits on Sep 20, 2019
  1. MDEV-12646: systemd service file changes from Fedora

    grooverdan authored and cvicentiu committed May 8, 2017
    Include comment header that describes overrides.
    
    Unit description now includes @Version@.
    
    After=syslog.target removed - redunant
    
    Add --basedir=@Prefix to prevent /root/.my.cnf lookups. This is
    placed after $MYSQLD_OPTIONS in case a user sets a --{no,}default
    type options which has to be first in the mysqld arguements.
    
    Additional changes to multi instance (support-files/mariadb@.service.in):
    * added @SYSTEMD_EXECSTARTPRE@ / @SYSTEMD_EXECSTARTPOST@
    * removed mariadb@bootstrap reference as galera_new_cluster as
      it's a little too proment.
    * use_galera_new_cluster.conf updated to override pre/post steps
      to ensure it has no side effects
    
    Signed-off-by: Daniel Black <daniel@linux.vnet.ibm.com>
Commits on Jul 1, 2019
  1. systemd multiinstance - doc fix - version number

    grooverdan authored and cvicentiu committed Jun 18, 2019
  2. mysql_install_db: assume builddir is dirname0

    grooverdan authored and cvicentiu committed Apr 14, 2019
    The assumption in the original commit for --builddir (648d3ce),
    was to assume that without a --builddir, and when --srcdir
    is specified, that the builddir is the same as the srcdir.
    
    The problem is that this assumption does not hold for out-of-source
    builds and we can figure out the builddir by looking for where
    mysql_install_db script is.
    
    As mysql_install_db is in the builddir, we use dirname0 as the builddir after
    checking that my_print_defaults is also located from dirname0, otherwise
    default to old behavior.
Commits on Jun 14, 2019
  1. systemd: multi-instance not for Galera, User/Group flexible

    grooverdan authored and hgxl64 committed Jan 18, 2019
    By removing Galera functionality, we remove PermissionsStartOnly=true
    and hence make this service more flexible for running multiple
    instances each on a different user.
  2. systemd: multi-instance changes to -defaults-group-suffix=.%I

    grooverdan authored and hgxl64 committed Dec 12, 2017
    When the multi-instance systemd service file was chosen it effectively
    relied on /etc/my.cnf.d/my{instancename}.cnf file to define its
    configuration file. This is problematic if running along side a
    single instance mariadb service which has /etc/my.cnf that reads all
    configuration file /etc/my.cnf.d/*.cnf.
    
    To prevent the service from auto starting up if a user has this
    previous configuration ConditionPathExists=!@sysconf2dir@/my%I.cnf
    to ensure that a user with the previous configuration isn't
    started in a non-intended mode. Documentation in the service file
    (should be release notes too), described a recommended migration.
    
    A new approach was to use --defaults-group-suffix=.%I as an
    arguement to mysqld and let the user define a [mysqld.{instancename}]
    group within the configuration file. This way existing global
    mysqld configuration options are read with the instance name
    having special overrides of datadir, port, socket etc.
    
    A systemd environment variable MYSQLD_MULTI_INSTANCE is used in the
    defination as it give the user flexability to use multiple
    segregation mechanisms between services. This is used multiple
    times within the service which all needed to be kept consistent.
    
    Another notable change is mysql_install_db being part of the
    ExecStartPre. This provides and auto-initialization for users
    that run multiple instances.
Commits on May 27, 2019
  1. RocksDB: use crc32c optimised version for POWER

    grooverdan authored and spetrunia committed Nov 22, 2018
Commits on May 10, 2019
  1. MDEV-8553: Impossible where for a!=a, a<a, a>a

    grooverdan authored and svoj committed Dec 16, 2018
    For a table column `a`, the above expressions logically
    equate to false in all cases.
    
    With this patch the optimizer knows about this and queries
    like:
    
    SELECT * FROM t1 WHERE a!=a
    
    no longer need to evaluate a!=a for every row.
    
    The same applies if the expression was `a<a`, or `a>a`
    
    An `EXPLAIN SELECT COOUNT(*) FROM t1 WHERE a<a` will show:
    
    id     select_type     table   type    possible_keys   key     key_len ref     rows    Extra
    1      SIMPLE  NULL    NULL    NULL    NULL    NULL    NULL    NULL    Impossible WHERE
    
    Similarly `NOT (a!=a)` is always true.
    
    EXPLAIN SELECT COUNT(*) FROM t1 WHERE not (a!=a);
    id     select_type     table   type    possible_keys   key     key_len ref     rows    Extra
    1      SIMPLE  NULL    NULL    NULL    NULL    NULL    NULL    NULL    Select tables optimized away
Commits on May 1, 2019
  1. MDEV-15051: signal handler - output information about the core genera…

    grooverdan authored and vuvova committed Jan 2, 2018
    …tion
    
    The working directory, resource limits and core pattern will
    aid the user finding a core file in the case of failure.
    
    While the core file size is most relevant however other resource
    limits may give a clue as the the cause of the fatal signal so
    include them also.
    
    As signal handler functions are limited, proc filesystem reads/
    readlink calls are used instead of the more obvious getcwd/getrlimits
    functions which aren't listed as signal safe.
    
    Results in output of the form:
    
    Writing a core file: working directory at /tmp/datadir
    Resource Limits:
    Limit                     Soft Limit           Hard Limit Units
    Max cpu time              unlimited            unlimited seconds
    Max file size             unlimited            unlimited bytes
    Max data size             unlimited            unlimited bytes
    Max stack size            8388608              unlimited bytes
    Max core file size        unlimited            unlimited bytes
    Max resident set          unlimited            unlimited bytes
    Max processes             47194                47194 processes
    Max open files            1024                 4096 files
    Max locked memory         65536                65536 bytes
    Max address space         unlimited            unlimited bytes
    Max file locks            unlimited            unlimited locks
    Max pending signals       47194                47194 signals
    Max msgqueue size         819200               819200 bytes
    Max nice priority         0                    0
    Max realtime priority     0                    0
    Max realtime timeout      unlimited            unlimited            us
    Core pattern: |/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t %P %I
    
    Segmentation fault (core dumped)
    
    Closes #537
Commits on Apr 2, 2019
Commits on Mar 18, 2019
  1. MDEV-18726: innodb buffer pool size not consistent with large pages

    grooverdan authored and dr-m committed Feb 27, 2019
    Rather than add a small extra amount on the size of chunks, keep it
    of the specified size. The rest of the chunk initialization code
    adapts to this small size reduction. This has been made in the general
    case, not just large pages, to keep it simple.
    
    The chunks size is controlled by innodb-buffer-pool-chunk-size. In the
    code increasing this by a descriptor table size length makes it
    difficult with large pages. With innodb-buffer-pool-chunk-size set to 2M
    the code before this commit would of added a small amount extra to this
    value when it tried to allocate this. While not normally a problem it is
    with large pages, it now requires addition space, a whole extra large
    page. With a number of pools, or with 1G or 16G large pages this is
    quite significant.
    
    By removing this additional amount, DBAs can set
    innodb-buffer-pool-chunk size to the large page size, or a multiple of
    it, and actually get that amount allocated. Previously they had to fudge
    a value less.
    
    The innodb.test results show how this is fudged over a number of tests. With
    this change the values are just between 488 and 500 depending on architecture
    and build options.
    
    Tested with  --large-pages --innodb-buffer-pool-size=256M
    --innodb-buffer-pool-chunk-size=2M on x86_64 with 2M default large page
    size. Breaking before buf_pool init, one large page was allocated in
    MyISAM, by the end of the function 128 huge pages where allocated as
    expected. A further 16 pages where allocated for a 32M log buffer and
    during startup 1 page was allocated briefly to the redo log.
Commits on Mar 16, 2019
  1. MDEV-18946: innodb: {de|}allocate_large_{dodump|dontdump} added

    grooverdan committed Mar 7, 2019
    In 1dc78d3 the arguments
    to a deallocate_large(dontdump=true) was passed a wrong value.
    
    To avoid accidential calling large memory function that have
    DODUMP/DONTDUMP options and missing arguments, the functions
    have been given distinct names.
  2. MDEV-18946: innodb: buffer_pool - unallocate large pages requires size

    grooverdan committed Mar 7, 2019
    MDEV-10814 introduce a bug where the size argument to
    deallocate_large was passed true, evaluating to 1, as the size.
    
    When this is passed to munmap this resulted in EINVAL and the
    page not being released. This only occured the buf_pool_free_instance
    when called on shutdown so no impact as the process termination
    correctly frees the memory.
Commits on Mar 14, 2019
  1. travis: use galera-4 in 10.4 branch (#1226)

    grooverdan authored and janlindstrom committed Mar 14, 2019
Commits on Mar 9, 2019
  1. wsrep_sst: remove WSREP_SST_OPT_SUFFIX_VALUE, checking [mysqld] is co…

    grooverdan authored and janlindstrom committed Mar 5, 2019
    …vered in the parse_cnf --mysqld case
Commits on Feb 24, 2019
  1. stop covering_keys from being set to the same thing twice

    grooverdan authored and svoj committed Dec 19, 2018
Commits on Feb 13, 2019
  1. hash (storage): hp_hashnr is local

    grooverdan authored and svoj committed May 21, 2018
    Remove 'register' quantifer from args too.
  2. heap: remove NEW_HASH_FUNCTION

    grooverdan authored and svoj committed May 21, 2018
    This was added in 29fa725 (in 2000) and nothing defines
    NEW_HASH_FUNCTION. A low collision is the wrong tradeoff,
    it should be focused on throughput.
    
    d405bee shows the existing function
    is pretty cpu intensive and needs to be improved as well.
  3. my_close: Don't retry on close

    grooverdan authored and svoj committed Feb 5, 2019
    According to close(2) "Retrying the close() after a failure return is
    the wrong thing to do"
    
    Even the EINTR case its maybe closed. Take the prudent approach here
    an risk leaking one file descriptor rather than closing one that is
    nolonger ours.
  4. Aggregate functions: only create list if args exist

    grooverdan authored and svoj committed Feb 12, 2019
    Also always empty list rather than only if there is no error.
  5. cmake-wsrep: friendly error message about missing wsrep_api.h

    grooverdan committed Feb 13, 2019
    Without this commit the error message is:
    
    $ cmake . -DWITH_WSREP=ON
    -- Running cmake version 3.12.1
    -- MariaDB 10.4.3
    CMake Error at cmake/wsrep.cmake:36 (FILE):
      FILE STRINGS file
      ".../mariadb-server-10.4/wsrep-lib/wsrep-API/v26/wsrep_api.h"
      cannot be read.
    Call Stack (most recent call first):
      CMakeLists.txt:147 (INCLUDE)
    
    Having 'git config cmake.update-submodules yes' nicely updates the
    build without error.
    
    $ cmake . -DWITH_WSREP=ON
    -- Running cmake version 3.12.1
    -- MariaDB 10.4.3
    Submodule path 'wsrep-lib': checked out 'e7d72ae7f6a6995a21d743389426a963429a1fff'
    Submodule path 'wsrep-lib/wsrep-API/v26': checked out '75a5f452f2ba07b0f4a3a9a94825fccc71b27398'
Commits on Feb 12, 2019
  1. cmake/wsrep: allow disabling -DWITH_WSREP=OFF

    grooverdan committed Feb 12, 2019
Commits on Feb 6, 2019
  1. Don't retry on close

    grooverdan authored and svoj committed Feb 5, 2019
    According to close(2) "Retrying the close() after a failure return is
    the wrong thing to do"
    
    Corrects 5c81cb8 in MDEV-15635
Commits on Jan 21, 2019
Commits on Jan 16, 2019
  1. safemalloc: put bad_ptr error arguments in right order

    grooverdan authored and svoj committed Jan 8, 2019
  2. safemalloc: warn, flush after fprintf

    grooverdan authored and svoj committed May 21, 2018
    Corrects 94d722b
Commits on Jan 8, 2019
  1. travis: add versioning to test suite

    grooverdan committed Jan 18, 2018
Commits on Jan 6, 2019
  1. travis: add zstd for osx

    grooverdan committed May 23, 2018
Commits on Nov 26, 2018
  1. travis: xcode10.1

    grooverdan authored and svoj committed Nov 22, 2018
Commits on Nov 23, 2018
  1. travis: clang - C{,XX}FLAGS=-Wno-unused-command-line-argument

    grooverdan committed Nov 23, 2018
  2. travis: add CC_VERSION=8

    grooverdan committed Nov 23, 2018
    clang-8 is experimental so allows its failure on os: linux
Older
You can’t perform that action at this time.