1. 23 May, 2019 5 commits
    • Marko Mäkelä's avatar
      MDEV-19544 Remove innodb_locks_unsafe_for_binlog · 1a6f4704
      Marko Mäkelä authored
      The transaction isolation levels READ COMMITTED and READ UNCOMMITTED
      should behave similarly to the old deprecated setting
      innodb_locks_unsafe_for_binlog=1, that is, avoid acquiring gap locks.
      
      row_search_mvcc(): Reduce the scope of some variables, and clean up
      the initialization and use of the variable set_also_gap_locks.
      1a6f4704
    • Marko Mäkelä's avatar
      MDEV-19543 Deprecate and ignore innodb_log_checksums · 47cede64
      Marko Mäkelä authored
      The parameter innodb_log_checksums that was introduced in MariaDB 10.2.2
      via mysql/mysql-server@af0acedd885eb7103e319f79d25fda7386ef1506
      does not make much sense. The original motivation of introducing this
      parameter (initially called innodb_log_checksum_algorithm in
      mysql/mysql-server@22ba38218e1d76c24f69b5a5595ad3bf5933acb0)
      was that the InnoDB redo log used the slow and insecure innodb algorithm.
      With hardware or SIMD accelerated CRC-32C, there should be no reason to
      allow checksums to be disabled on the redo log.
      
      The parameter innodb_encrypt_log already implies innodb_log_checksums=ON.
      
      Let us deprecate the parameter innodb_log_checksums and always compute
      redo log checksums, even if innodb_log_checksums=OFF is specified.
      
      An upgrade from MariaDB 10.2.2 or later will only be possible after
      using the default value innodb_log_checksums=ON. If the non-default
      value innodb_log_checksums=OFF was in effect when the server was shut down,
      a log block checksum mismatch will be reported and the upgraded server
      will fail to start up.
      47cede64
    • Marko Mäkelä's avatar
      MDEV-17841: Fix -Wsometimes-uninitialized · 3eef9f21
      Marko Mäkelä authored
      maria_open(): Initialize share->mode=0 for S3
      3eef9f21
    • Marko Mäkelä's avatar
      Adjust innodb.innodb-wl5522-debug result · 483536ec
      Marko Mäkelä authored
      The test result was affected by
      commit 007f68c3
      but the adjustment was inadvertently omitted.
      483536ec
    • Alexander Barkov's avatar
  2. 22 May, 2019 12 commits
  3. 21 May, 2019 23 commits
    • Sergey Vojtovich's avatar
      Attempt fixing ERR_remove_state warning · 424dc49d
      Sergey Vojtovich authored
      424dc49d
    • Sergey Vojtovich's avatar
      mysql_socket_accept() microoptimisations · 54b81cf6
      Sergey Vojtovich authored
      No need to initialize socket_accept, it always gets assigned a value.
      
      Pass addr_len directly to accept().
      
      Part of MDEV-19515 - Improve connect speed
      54b81cf6
    • Sergey Vojtovich's avatar
      Maintain connection_count atomically · a61baa7a
      Sergey Vojtovich authored
      Removed LOCK_connection_count.
      
      Removed duplicate denied_connections and connection_errors_max_connection
      increment from create_new_thread(). Another increment done by
      CONNECT::close_with_error().
      
      Simplified away CONNECT::thread_count_incremented. Now close_with_error()
      is always called with connection_count incremented.
      
      Part of MDEV-19515 - Improve connect speed
      a61baa7a
    • Sergey Vojtovich's avatar
      Simplified away wake_thread · 0bee021b
      Sergey Vojtovich authored
      cached_thread_count can handle it alone.
      
      Added "fast path": when thread is being added to the cache and there's
      queued connection request, serve it immediately.
      
      Part of MDEV-19515 - Improve connect speed
      0bee021b
    • Sergey Vojtovich's avatar
      Move thread re-initialisation out of cache_thread · 34dfcbe3
      Sergey Vojtovich authored
      It mostly duplicates code of do_handle_one_connection(). Move it there,
      so that it is easier to simplify it in future.
      
      Moved PSI_CALL_delete_current_thread()/_db_pop_() out of mutex. Call them
      consistently in all cases, unlike before:
      - called for reused threads
      - called for flushed threads
      - called for threads that go down after 5 minutes timeout
      - not called for threads attempting to cache themselves during flush
      - not called for threads attempting to cache themselves when cache is full
      
      Part of MDEV-19515 - Improve connect speed
      34dfcbe3
    • Sergey Vojtovich's avatar
      Simplified away scheduler_functions::end_thread() · ebc55c85
      Sergey Vojtovich authored
      Code properly integrated into callers instead.
      
      do_handle_one_connection(): no need to reset thd and thd->thread_stack
      as they're not updated by cache_thread().
      
      Part of MDEV-19515 - Improve connect speed
      ebc55c85
    • Sergey Vojtovich's avatar
      Simplified away init_new_connection_thread() · 6900aaf4
      Sergey Vojtovich authored
      It was meaningful only for one-thread-per-connection scheduler anyway,
      so call init_new_connection_handler_thread() directly from
      handle_one_connection().
      
      It was somewhat harmful for no-threads scheduler, because it'd attempt to
      detach main thread on AIX_3_2 and Siemens unix (and DEC OSF/1 3.2 too).
      Also it does duplicate my_thread_init() call, which may produce a warning
      under EXTRA_DEBUG_THREADS.
      
      start_wsrep_THD() shouldn't have called it at all: it already detached
      and called my_thread_init().
      
      Part of MDEV-19515 - Improve connect speed
      6900aaf4
    • Sergey Vojtovich's avatar
      Signal COND_thread_cache out of mutex · 8d9d4aa6
      Sergey Vojtovich authored
      Gives ~10% throughput improvemet in sysbench connect benchmark.
      
      Part of MDEV-19515 - Improve connect speed
      8d9d4aa6
    • Sergey Vojtovich's avatar
      Try accept a few times before falling back to poll · 5d183df7
      Sergey Vojtovich authored
      Gives ~3% throughput improvemet in sysbench connect benchmark.
      
      Part of MDEV-19515 - Improve connect speed
      5d183df7
    • Sergey Vojtovich's avatar
      Improved ha_close_connection() scalability · 87775402
      Sergey Vojtovich authored
      Rather than iterating global plugin collection, iterate THD local
      collection. Removes two LOCK_plugin locks per connection.
      
      Part of MDEV-19515 - Improve connect speed
      87775402
    • Sergey Vojtovich's avatar
      Adiue thd_ha_data(), you've broke many hearts · 5e139437
      Sergey Vojtovich authored
      Part of MDEV-19515 - Improve connect speed
      5e139437
    • Sergey Vojtovich's avatar
      Fixed RocksDB to follow THD ha_data protocol · ec926b0f
      Sergey Vojtovich authored
      Use thd_get_ha_data()/thd_set_ha_data() which protect against plugin
      removal until it has THD ha_data.
      
      Do not reset THD ha_data in rocksdb_close_connection(), cleaner approach
      is to let ha_close_connection() do it.
      
      Removed transaction objects cleanup from rocksdb_done_func(). As we lock
      plugin properly, there must be no transaction objects during RocksDB
      shutdown.
      
      Part of MDEV-19515 - Improve connect speed
      ec926b0f
    • Sergey Vojtovich's avatar
      Fixed InnoDB to not use broken thd_ha_data() · 8c8d584f
      Sergey Vojtovich authored
      Part of MDEV-19515 - Improve connect speed
      8c8d584f
    • Sergey Vojtovich's avatar
      Fixed Aria to follow THD ha_data protocol · 5e1b3cc8
      Sergey Vojtovich authored
      Use thd_get_ha_data()/thd_set_ha_data() which protect against plugin
      removal until it has THD ha_data.
      
      Part of MDEV-19515 - Improve connect speed
      5e1b3cc8
    • Sergey Vojtovich's avatar
      Fixed Sphinx to follow THD ha_data protocol · ba59cc0f
      Sergey Vojtovich authored
      Use thd_get_ha_data()/thd_set_ha_data() which protect against plugin
      removal until it has THD ha_data.
      
      Do not reset THD ha_data in sphinx_close_connection(), cleaner approach
      is to let ha_close_connection() do it.
      
      Part of MDEV-19515 - Improve connect speed
      ba59cc0f
    • Sergey Vojtovich's avatar
      Fixed Mroonga to follow THD ha_data protocol · 00e533c7
      Sergey Vojtovich authored
      Use thd_get_ha_data()/thd_set_ha_data() which protect against plugin
      removal until it has THD ha_data.
      
      Do not reset THD ha_data in mrn_close_connection(), cleaner approach
      is to let ha_close_connection() do it.
      
      Part of MDEV-19515 - Improve connect speed
      00e533c7
    • Sergey Vojtovich's avatar
      Fixed Spider to follow THD ha_data protocol · 5c18ba6c
      Sergey Vojtovich authored
      Do not reset THD ha_data in spider_close_connection(), cleaner approach
      is to let ha_close_connection() do it.
      
      Part of MDEV-19515 - Improve connect speed
      5c18ba6c
    • Sergey Vojtovich's avatar
      Fixed FederatedX to follow THD ha_data protocol · 762d2b96
      Sergey Vojtovich authored
      Use thd_get_ha_data()/thd_set_ha_data() which protect against plugin
      removal until it has THD ha_data.
      
      Do not reset THD ha_data in ha_federatedx::disconnect(), cleaner approach
      is to let ha_close_connection() do it.
      
      Part of MDEV-19515 - Improve connect speed
      762d2b96
    • Sergey Vojtovich's avatar
      Moved vio allocation to connection thread · ce30c994
      Sergey Vojtovich authored
      Part of MDEV-19515 - Improve connect speed
      ce30c994
    • Sergey Vojtovich's avatar
      Simplified away CONNECT::real_id · efb61c12
      Sergey Vojtovich authored
      It was wrong anyway, as it may not get updated by the time created thread
      reads it. And it was 0 for cached threads.
      
      Part of MDEV-19515 - Improve connect speed
      efb61c12
    • Sergey Vojtovich's avatar
      Simplified away CONNECT::extra_port · 7192d7b7
      Sergey Vojtovich authored
      Part of MDEV-19515 - Improve connect speed
      7192d7b7
    • Sergey Vojtovich's avatar
      Simplified away CONNECT::host · c90c7698
      Sergey Vojtovich authored
      Part of MDEV-19515 - Improve connect speed
      c90c7698
    • Sergey Vojtovich's avatar
      Removed duplicate thread cache check · 56b1cdde
      Sergey Vojtovich authored
      It may be beneficial for slow-path, where new thread is to be created.
      However it is harmful for fast-path, where thread cache can fulfil
      request: it caused 2 extra loads of write-contended variables.
      
      Also shrink variables scope.
      
      Part of MDEV-19515 - Improve connect speed
      56b1cdde