1. 03 Nov, 2016 1 commit
    • Sergey Vojtovich's avatar
      MDEV-7660 - MySQL WL#6671 "Improve scalability by not using thr_lock.c locks · d665e79c
      Sergey Vojtovich authored
                  for InnoDB tables"
      
      Don't use thr_lock.c locks for InnoDB tables. Below is list of changes that
      were needed to implement this:
      - HANDLER OPEN acquireis MDL_SHARED_READ instead of MDL_SHARED
      - HANDLER READ calls external_lock() even if SE is not going to be locked by
        THR_LOCK
      - InnoDB lock wait timeouts are now honored which are much shorter by default
        than server lock wait timeouts (1 year vs 50 seconds)
      - with @@autocommit= 1 LOCK TABLES disables autocommit implicitely, though
        user still sees @@autocommt= 1
      - the above starts implicit transaction
      - transactions started by LOCK TABLES are now rolled back on disconnect
        (previously everything was committed due to autocommit)
      - transactions started by LOCK TABLES are now rolled back by ROLLBACK
        (previously everything was committed due to autocommit)
      - it is now impossible to change BINLOG_FORMAT under LOCK TABLES (at least
        to statement) due to running transaction
      - LOCK TABLES WRITE is additionally handled by MDL
      - ...in contrast LOCK TABLES READ protection against DML is pure InnoDB
      - combining transactional and non-transactional tables under LOCK TABLES
        may cause rolled back changes in transactional table and "committed"
        changes in non-transactional table
      - user may disable innodb_table_locks, which will cause LOCK TABLES to be
        noop basically
      
      Removed tests for BUG#45143 and BUG#55930 which cover InnoDB + THR_LOCK. To
      operate properly these tests require code flow to go through THR_LOCK debug
      sync points, which is not the case after this patch. These tests are removed
      by WL#6671 as well. An alternative is to port them to different storage engine.
      d665e79c
  2. 02 Nov, 2016 3 commits
    • Oleksandr Byelkin's avatar
      MDEV-9114: Bulk operations (Array binding) · e2d69126
      Oleksandr Byelkin authored
      (+ default values)
      e2d69126
    • Darshan M N's avatar
      Bug#23631471 BUF_BLOCK_ALIGN() MAKES INCORRECT ASSUMPTIONS ABOUT CHUNK SIZE · c6713f65
      Darshan M N authored
      Issue:
      ======
      Currently the approach we take to find the chunk corresponding to a given
      pointer uses srv_buf_pool_chunk_unit based on the assumption that
      srv_buf_pool_chunk_unit is the total size of all pages in a buffer pool
      chunk. We first step back by srv_buf_pool_chunk_unit bytes and use
      std::map::upper_bound() to find the first chunk in the map whose key >= the
      resulting pointer.
      
      However, the real size of a chunk (and thus, the total size of its pages)
      may differ from the value configured with innodb_buffer_pool_chunk_size
      due to rounding up to the OS page size. So, in some cases the above logic
      gives us the wrong chunk.
      
      Fix:
      ====
      We find out the chunk corresponding to the give pointer without using
      srv_buf_pool_chunk_unit. This is done by using std::map::upper_bound()
      to find the next chunk in the map which appears right after the pointer and
      decrementing the iterator, which would give us the chunk the pointer
      belongs to.
      
      Contribution by Alexey Kopytov.
      
      RB: 13347
      Reviewed-by: default avatarDebarun Banerjee <debarun.banerjee@oracle.com>
      c6713f65
    • Sergey Vojtovich's avatar
      MDEV-11175 - \H option does not replace localhost with a host name · ce101166
      Sergey Vojtovich authored
      Let \H issue host name when connected to localhost via TCP/IP.
      ce101166
  3. 01 Nov, 2016 1 commit
  4. 31 Oct, 2016 2 commits
    • Sergey Vojtovich's avatar
      MDEV-8791 - AIX: Unresolved Symbols during linking · 71e11bce
      Sergey Vojtovich authored
      Clean-up nolock.h: it doesn't serve any purpose anymore. Appropriate code moved
      to x86-gcc.h and my_atomic.h.
      
      If gcc sync bultins were detected, we want to make use of them independently of
      __GNUC__ definition. E.g. XLC simulates those, but doesn't define __GNUC__.
      
      HS/Spider: According to AIX manual alloca() returns char*, which cannot be
      casted to any type with static_cast. Use explicit cast instead.
      
      MDL: Removed namemangling pragma, which didn't let MariaDB build with XLC.
      
      WSREP: _int64 seem to be conflicting name with XLC, replaced with _integer64.
      
      CONNECT: RTLD_NOLOAD is GNU extention. Removed rather meaningless check if
      library is loaded. Multiple dlopen()'s of the same library are permitted,
      and it never gets closed anyway. Except for error, which was a bug: it may
      close library, which can still be referenced by other subsystems.
      
      InnoDB: __ppc_get_timebase() is GNU extention. Only use it when __GLIBC__ is
      defined.
      
      Based on contribution by flynn1973.
      71e11bce
    • Kristian Nielsen's avatar
      40ad9466
  5. 29 Oct, 2016 2 commits
  6. 28 Oct, 2016 2 commits
  7. 27 Oct, 2016 19 commits
  8. 25 Oct, 2016 2 commits
  9. 24 Oct, 2016 3 commits
  10. 23 Oct, 2016 5 commits