Commit Graph

16 Commits

Author SHA1 Message Date
Azat Khuzhin
ed70ed6f71 Introduce connection_no_wait setting for MySQL engine.
This will allow to avoid superfluous sleep during query execution, since
this not only not desired behavoiur, but also may hang the server, since
if you will execute enough queries that will use MySQL database but will
not allow enough connections (or your MySQL server is too slow) then you
may run out of threads in the global thread pool.

Also note that right now it is possible to get deadlock when the mysql
pool is full, consider the following scenario:

- you have m1 and m2 mysql tables
- you have q1 and q2 queries, bot queries join m1 and m2
- q1 allocated connection for m1 but cannot allocate connection for m2
- q2 allocated connection for m2 but cannot allocate connection for m1
- but to resolve the lock one should give up on the locking while it is not possible right now...

And then you got no free threads and this:

    # grep -h ^202 /proc/$(pgrep clickhouse-serv)/task/*/syscall  | cut -d' ' -f2 | sort | uniq -c | sort -nr | head
       1554 0x7ffb60b92fe8 # mutex in mysqlxx::PoolWithFailover::get
       1375 0x7ffb9f1c4748 # mutex in ::PoolEntryHelper::~PoolEntryHelper from DB::MultiplexedConnections::invalidateReplica
       1160 0x7ffb612918b8 # mutex in mysqlxx::PoolWithFailover::get
         42 0x7ffb9f057984 # mutex in ThreadPoolImpl<std::__1::thread>::worker

    *NOTE: 202 is a `futex` with WAIT*

(Went with `syscall` because debugging 10k+ threads is not easy, and
eventually it may TRAP)
2021-09-02 22:23:37 +03:00
Dmitriy
253f249f3d Add links
Добавил ссылку на настройку external_table_functions_use_nulls.
2021-06-27 20:57:46 +03:00
Dmitriy
c379a0b226 Update mysql and postgresql engines
Внес небольшие поправки.
2021-06-27 20:35:53 +03:00
Dmitriy
07afd0746b Replace links
Заменил линки в cast.
2021-06-27 14:07:24 +03:00
sevirov
775454bfe0
Update docs/en/engines/table-engines/integrations/mysql.md
Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com>
2021-06-27 12:25:52 +03:00
Dmitriy
8062884323 Translate to Russian
Выполнил перевод на русский язык.
2021-06-25 21:25:25 +03:00
Dmitriy
48e19f0c39 Create ExternalDistributed.md
Задокументировал новый табличный движок ExternalDistributed.
2021-06-24 22:29:57 +03:00
Vladimir Goncharov
bea934f40c
Update mysql.md
The MySQL engine also allows to perform `INSERT`
2021-06-03 20:12:19 +03:00
Azat Khuzhin
4f41ebcae3 Add settings (for connections) for MySQL storage engine
Default settings are not very efficient, since they do not even reuse
connections.
And when each query requires connection you can have only ~80 QPS, while
by simply enabling connection reuse (connection_auto_close=false) you
can have ~500 QPS (and by increasing connection_pool_size you can have
better QPS throughput).

So this patch allows to pass through some connection related settings
for the StorageMySQL engine, like:
- connection_pool_size=16
- connection_max_tries=3
- connection_auto_close=true

v2: remove connection_pool_default_size
v3: remove num_tries_on_connection_loss
2021-05-20 22:44:52 +03:00
Olga Revyakina
89f5a64cc0 Merge branch 'master' into revolg-DOCSUP-5920-PostgreSQL_function_dictionary_engine 2021-03-20 12:48:25 +03:00
Slach
ddd5acf251 try to fix "fake" nowhere links according to https://github.com/ClickHouse/ClickHouse/pull/21268#issuecomment-787106299 2021-03-08 03:40:29 +03:00
Slach
5791cf5f2b fix review comments https://github.com/ClickHouse/ClickHouse/pull/21078#discussion_r580413875 and https://github.com/ClickHouse/ClickHouse/pull/21078#discussion_r580410204
Signed-off-by: Slach <bloodjazman@gmail.com>
2021-03-08 03:39:24 +03:00
Olga Revyakina
64322d2212 Table engine and function 2021-02-27 03:01:02 +03:00
Ivan Blinkov
258d2fd499
[docs] split various kinds of CREATE queries into separate articles (#12328)
* normalize

* split & adjust links

* re-normalize

* adjust ru links

* adjust ja/tr links

* partially apply e0d19d2aea

* reset contribs
2020-07-09 18:10:35 +03:00
Ivan Blinkov
a2047de471
[docs] introduction for integration table engines (#12167)
* [docs] introduction for integration table engines

* Update jdbc.md

* Update odbc.md

* Update mysql.md

* Update kafka.md

* Update hdfs.md
2020-07-06 20:18:37 +03:00
Ivan Blinkov
d91c97d15d
[docs] replace underscores with hyphens (#10606)
* Replace underscores with hyphens

* remove temporary code

* fix style check

* fix collapse
2020-04-30 21:19:18 +03:00