1. 23 May, 2019 4 commits
    • 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 24 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
    • Sergey Vojtovich's avatar
      Optimised fcntl() when accepting connections · 701e2a7e
      Sergey Vojtovich authored
      Removed FD_CLOEXEC setting: already done by mysql_socket_accept().
      
      Moved O_NONBLOCK setting out of accepting loop.
      
      Removed blocking acceptance attempt, which was dead code. It was supposed
      to be executed before the last iteration, however it was actually executed
      during the last iteration. And it is not correct to block on one socket
      leaving other sockets unattended anyway.
      
      Gives ~5% throughput improvemet in sysbench connect benchmark.
      
      Part of MDEV-19515 - Improve connect speed
      701e2a7e