1. 23 May, 2019 8 commits
  2. 22 May, 2019 15 commits
  3. 21 May, 2019 17 commits
    • Sergey Vojtovich's avatar
      Attempt fixing ERR_remove_state warning · 424dc49d
      Sergey Vojtovich authored
      424dc49d
    • Oleksandr Byelkin's avatar
      MDEV-19540: 10.4 allow lock options with SELECT in brackets which previous version do not · 1921df66
      Oleksandr Byelkin authored
      Check locking options and brackets combinations.
      1921df66
    • 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